一、概述
TreeSet 集合不可存储重复元素,但是可以给元素排大小。
TreeSet 是如何保证元素不可重复的?
按照元素的大小决定是否相同元素。
二、TreeSet 集合
对于 TreeSet 集合中存储的元素,一定要用 java.lang.Comparable 或 java.util.Comparator 接口。
Demo1:
1 @Test
2 public void test1(){
3 TreeSet set = new TreeSet();
4 //这里因为String类型实现了java.lang.Comparable接口,所以可以添加到TreeSet中
5 set.add("hello");
6 set.add("world");
7 set.add("java");
8 set.add("web");
9 }
Demo2:
1 @Test
2 public void test2(){
3 TreeSet set = new TreeSet();
4 //这里因为Object类型没有实现了java.lang.Comparable接口,所以不可以添加到TreeSet中
5 set.add(new Object());
6 }
Demo3:
1 @Test
2 public void test10(){
3 //用匿名内部类实现了Comparator接口
4 TreeSet set = new TreeSet(new Comparator(){
5
6 @Override
7 public int compare(Object o1, Object o2) {
8 Student s1 = (Student) o1;
9 Student s2 = (Student) o2;
10 return s1.getId() - s2.getId();
11 }});
12
13 set.add(new Student(3,"张三"));
14 set.add(new Student(1,"李四"));
15 set.add(new Student(2,"王五"));
16
17 System.out.println(set);
18 }