码迷,mamicode.com
首页 > 编程语言 > 详细

java学习之treeset

时间:2018-01-08 22:36:15      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:ceo   定义   ext   null   getname   str   col   exception   ide   

Set:无序,不可以重复元素

  |--HashSet:数据结构是哈希表,线程是非同步的。

          保证元素唯一性的原理:判断元素的hashcode值是否相同

            如果相同,还会继续判断元素的equals方法,是否为true

 

  |--TreeSet:可以对Set集合中的元素进行排序

 

注意:排序时,当主要条件相同时,一定要判断一下次要条件(否则会被认为是同一个对象而不被加入)

 1 import java.util.Iterator;
 2 import java.util.TreeSet;
 3 
 4 /**
 5  * 需求:
 6  * 往treeset集合中存储自定义对象学生  
 7  * 想按照学生的年龄进行排序
 8  */
 9 public class PackageDemo {
10 
11     public static void main(String[] args) {
12         TreeSet ts=new TreeSet();
13         ts.add(new Student("皮卡丘1",20));
14         ts.add(new Student("皮卡丘",20));
15         ts.add(new Student("皮卡",19));
16         ts.add(new Student("雷卡",21));
17         ts.add(new Student("雷卡",21));
18         
19         Iterator it=ts.iterator();
20         
21         while(it.hasNext()) {
22             Student student=(Student)it.next();
23             System.out.println(student.getName()+"...."+student.getAge());
24         }
25         
26     }
27 
28 }
29 class Student implements Comparable{//该接口强制让学生具有比较性
30     private String name;
31     private int age;
32     public Student(String name,int age) {
33         this.name=name;
34         this.age=age;
35     }
36     public String getName() {
37         return name;
38     }
39     public int getAge() {
40         return age;
41     }
42     @Override
43     public int compareTo(Object o) {
44         if(null == o) {
45             throw new RuntimeException("传进一个空对象");
46         }
47         if(!(o instanceof Student)) {
48             throw new RuntimeException("传进来的不是学生类");
49         }
50         Student student=(Student)o;
51         if(this.age>student.age) {
52             return 1; 
53         }else if(this.age==student.age) {
54             return this.name.compareTo(student.name);//注意:排序时,当主要条件相同时,一定要判断一下次要条件(否则会被认为是同一个对象而不被加入)
55         }
56         return -1;
57     }
58     
59     
60 }

 

java学习之treeset

标签:ceo   定义   ext   null   getname   str   col   exception   ide   

原文地址:https://www.cnblogs.com/zhaohuan1996/p/8245076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!