标题:TreeSet
只看楼主
yu1543054075
Rank: 1
等 级:新手上路
帖 子:102
专家分:8
注 册:2015-4-30
结帖率:90.24%
已结贴  问题点数:20 回复次数:2 
TreeSet
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;//不明白什么意思

求指导!!!
搜索更多相关主题的帖子: compare public return equals 
2015-06-20 18:55
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
得分:10 
不是很明白…………帮你顶顶……
2015-06-21 16:09
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:10 
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泛型接口还是上下联系看看吧
本人也是初学哈,说的不对不要见怪

剑栈风樯各苦辛,别时冰雪到时春
2015-06-21 16:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-446820-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.572447 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved