我正在尋找像ArrayList這樣的對象,它可以讓我避免重複的條目。 例如,它可能有一個方法,在將每個條目添加到ArrayList之前調用'contains()'來使每個條目有效。想避免ArrayList中的重複條目
ArrayList<String> al = new ArrayList<String>();
if(!al.contains("red")){
al.add("red");
}
是否有這樣的事情存在?
我正在尋找像ArrayList這樣的對象,它可以讓我避免重複的條目。 例如,它可能有一個方法,在將每個條目添加到ArrayList之前調用'contains()'來使每個條目有效。想避免ArrayList中的重複條目
ArrayList<String> al = new ArrayList<String>();
if(!al.contains("red")){
al.add("red");
}
是否有這樣的事情存在?
ArrayLists和列表通常不是爲了避免重複而設計的,它們被設計爲保持多個元素順序的集合類型。如果你想收集更適合這份工作,那麼你要一套:
Set<String> set = new HashSet<String>();
然後,您可以添加所有你想要設置的,它永遠不會包含重複的字符串。請注意,如果您在自己寫的課程中使用該功能,則需要執行equals()
和hashcode()
才能正常工作。
正如下面的評論,如果你仍然需要維護秩序和刪除重複項,然後LinkedHashSet
是你的朋友。
如果需要維護訂單,請使用'LinkedHashSet'。 – 2011-03-03 14:23:42
這個問題更適合StackOverflow。你正在尋找的是一個Set(java.util.Set),很可能是java.util.HashSet。 – 2011-03-03 12:06:00