注册 登录
编程论坛 JAVA论坛

TreeSet

yu1543054075 发布于 2015-06-20 18:55, 417 次点击
class CustomComparator<T> implements Comparator<T> {
    public int compare(T o1, T o2) {
        if(((T) o1).equals(o2))
          return 0;
        return ((Comparable<T>) o1).compareTo((T) o2) * -1;
    }
}
下面三段代码不太清楚它的意思
if(((T) o1).equals(o2))//o1不是已经定义为T了吗,为什么还要强制转换为T,而o2为什么不需要
          return 0;
        return ((Comparable<T>) o1).compareTo((T) o2) * -1;//不明白什么意思

求指导!!!
2 回复
#2
秦时的明月夜2015-06-21 16:09
不是很明白…………帮你顶顶……
#3
林月儿2015-06-21 16:29
class CustomComparator<T> implements Comparator<T> {
    public int compare(T o1, T o2) {
        if(((T) o1).equals(o2))
          return 0;
        return ((Comparable<T>) o1).compareTo((T) o2) * -1;
    }
}
下面三段代码不太清楚它的意思
if(((T) o1).equals(o2))//o1不知道是否定义为T可能是T的派生类,不是强制转换为T可能是上转型,而o2为什么不需要加上看看有啥影响
          return 0;
        return ((Comparable<T>) o1).compareTo((T) o2) * -1;//不明白什么意思,我也不明白,既然是自定义的比较类实现的Comparator泛型接口还是上下联系看看吧
本人也是初学哈,说的不对不要见怪
1