我正在寻找可排序的(我的意思是在初始化后使用Comparator进行多次排序)Java类集合没有重复。有没有比编写代码更纯粹的解决方案,这将是不透明的,并防止例如一些ArrayList用于添加具有相同值已存在的另一个对象?可重复排序的Java集合
编辑1: 我应该添加一些关于排序的解释。我需要用不同的比较器多次分类这组值(实现的多样性)。
我正在寻找可排序的(我的意思是在初始化后使用Comparator进行多次排序)Java类集合没有重复。有没有比编写代码更纯粹的解决方案,这将是不透明的,并防止例如一些ArrayList用于添加具有相同值已存在的另一个对象?可重复排序的Java集合
编辑1: 我应该添加一些关于排序的解释。我需要用不同的比较器多次分类这组值(实现的多样性)。
Set Interface---->SortedSet Interface----->TreeSet Class
Set Interface---->HashSet Class
Set Interface---->LinkedHashSet Class
可以使用TreeSet
。它会删除重复项。
TreeSet
实现SortedSet
接口,以便将整理元素进入
SortedSet s=new TreeSet();
s.add(12);
s.add(12);
s.add(1);
s.add(56);
s.add(6);
s.add(47);
s.add(1);
System.out.println(s);
输出
[1, 6, 12, 47, 56]
使用设置的独特元素。您可以随时使用Collections.sort ()来排序你使用的任何集合
排序方法的唯一实现方式提供排序列表elemenents: '排序(列表
可能最好是从头开始扩展标准集合或实施一个集合。例如:
class SetList<E> extends ArrayList<E> {
boolean add(E e) {
if (contains(e)) {
return false;
} else {
super.add(e);
return true;
}
}
void add(int index, E e) { .. }
void addAll(..) {..}
void addAll(..) {..}
}
然后你有Collections.sort
如前所述。我想仔细检查一下 - 我可以想象库方法对SetList做出错误的假设,因为它扩展了ArrayList,导致了灾难。阅读ArrayList,List和Collection的javadoc以开始,并真正考虑从头开始。
很高兴您在那里添加了SortedSet! – RustyBuckets 2013-02-15 03:55:21
你也可以使用SortedMap;) – alfasin 2013-02-15 03:55:45
@alfasin是一个SortedMap的集合吗? – Woot4Moo 2013-02-15 03:55:57