刚刚在学习的时候遇到几个问题弄不明白,在这里,想请教大神们帮助解答一下
1,TreeSet集合的遍历方式,在存储非自定义类的元素时,比较方法使用的是compareTo(),返回值为负数,倒序排列,为0时,只存储一个元素,为正整数时,怎么存就怎么取,这个原理是什么?compareTo的返回值去了哪里?看不懂API,求大神说点简单的~
2,TreeSet在使用Comparator比较器的时候,不按照自然顺序进行排列,想按照字符串长度进行排列,那么就要写一个类去实现Comparator,并重写里面的方法compare(T o1 ,T o2),然后里面内容为字符串的长度比较,返回值; 例如:
class compara implements Comparator{
public int compare(String s1,String s2){
int num = s1.length - s2.length;
}
return num;
}
为什么这种方式,也就是num = s1.length - s2.length时,是按照由小到大顺序排列的
而num = s2.length - s1.length时,是按照由大到小的顺序排列的
这个return返回的num是给了谁?是怎么实现这个由大到小和由小到大的排序方法的?
一共两个问题,求大神帮助解答一下~
|
|