为什么TreeSet第四个元素开始,不跟第一个元素比较,后面的元素只是跟最近的两个三比较
TreeSet集合里放元素{4,2,6,1,7,8}
下面代码运行结果发现:1只跟2、6比较了,但是没有跟第一个元素4比较,7也是只跟2、6比较了,没有跟第一个元素4比较。而8则没有跟4、6比较。
- import java.util.*;
- /*
- TreeSet排序的第一种方式:让元素自身具备比较性。
- 元素需要实现Comparable接口,覆盖compareTo方法。
- */
- import java.util.Iterator;
- import java.util.TreeSet;
- class QuChong
- {
- public static void main(String[] args)
- {
-
- TreeSet ts=new TreeSet();
-
- ts.add(new MyList(4));
- ts.add(new MyList(2));
- ts.add(new MyList(6));
- ts.add(new MyList(1));
- ts.add(new MyList(7));
- ts.add(new MyList(8));
-
- Iterator it=ts.iterator();
- while(it.hasNext()){
- MyList my=(MyList)it.next();
- System.out.print(my.getNum());
- }
- }
- }
- class MyList implements Comparable
- {
- private int num;
- MyList(int num)
- {
- this.num=num;
- }
- public int compareTo(Object obj){
- MyList my=(MyList)obj;
- System.out.println(this.num+"---"+my.num);
- if(this.num==my.num)
-
- return 0;
- return 1;
- }
- public int getNum()
- {
- return num;
- }
- }
复制代码
发现1只跟2、6比较了,但是没有跟第一个元素4比较,7也是。而8则没有跟4、6比较。
|