我正在尋找可排序的(我的意思是在初始化後使用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