如果使用
TreeSet中
,由于其二进制搜索方法,它无法保证删除重复项。
如果使用
HashSet的
,它不提供排序。
我想在数据集中同时使用这两种功能。哪种方式更好?
唯一的方法是首先使用HashSet&删除重复项。然后将其复制到TreeSet进行排序?
答案 0 :(得分:2)
使用TreeSet
并且如果compareTo()
为两个元素返回0而不是它将被替换,因此只会出现唯一元素..
TreeSet<Object1> tree=new TreeSet<Object1>(new Comparator<Object1>() {
@Override
public int compare(Object1 o1, Object1 o2) {
return o1.k-o2.k;
}
});
此处Object1
如下所示:
class Object1{
int k;
}
如果Object1
的两个对象相同,即int k
比compare()
方法返回0,TreeSet
将检测到重复。希望我很清楚。