早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请问JDK中的Comparator这个接口中的publicintcompare(To1,To2)这个方法,o1o2到底分别是什么?打个比方我现在使用TreeSet往集合里添加元素,treeset.add(10);treeset.add(20);当调用Compare(To1,To2)这个方法

题目详情
请问JDK中的Comparator这个接口中的public int compare ( T o1,T o2 ) 这个方法,o1 o2到底分别是什么?打个比方我现在使用TreeSet往集合里添加元素,treeset.add(10); treeset.add(20); 当调用Compare (T o1,T o2 )这个方法的时候,它是会把10传给o1呢?还是会把20传给o1呢?如果是按照这种先后顺序的传值,是不是我把原先的treeset.add (10)与treeset.add(20)的先后顺序颠倒之后,输出的先后顺序也会反转呢?但事实证明不是这样的,无论我把treeset.add() 的两句代码如何颠倒,都不会影响输出的顺序,这到底又是为什么呢?
▼优质解答
答案和解析
第1个问号 o1/o2是T类型、即是表示泛型!相当于指所有类型.
第2个问号,是的.
第3个问号,输出是正序、还是倒序,看compare(...)当中的比较和返回值,
10和20比较,返回-1正序、返回1倒序(0是相等,这时不会出现),
第4个问号,见第3个问号的回答.