仅使用类属性jdk1.6

时间:2015-09-16 20:39:42

标签: java guava java-6

从ArrayList过滤重复项的推荐算法是什么?构成重复项的条件是对SomeClass属性的子集进行条件运算?此外,过滤后的集合必须保留原始列表中剩余元素的顺序。

e.g。

public class SomeClass {
    private String a;
    private String b;
    private String c;
    private String d;
}

和duplicates是列表中的两个实例: 拥有object1.getA()。equals(object2.getb())。成员c和d没有兴趣。

SomeClass是第三方库的一部分,不可修改。

不幸的是,将使用jdk1.6,因此没有可用的流,但番石榴是。

该类有十几个String成员,该列表包含数千万个对象。

我研究提供了一个Wrapper类来提供自定义的equals()和hashCode(),并在LinkedHashSet<>中使用它,但是,在提供额外对象的垃圾收集中,操作非常昂贵。

将TreeSet与Comparator一起使用稍微好一些,但需要额外的迭代才能使新的Collection恢复正常。

我对任何其他选择感兴趣。

0 个答案:

没有答案