每個Java Collection
有一個add()
和一個remove()
方法可以做你想做的。
因爲Collection
是一個接口,所以您需要選擇其中一個實現(通常是Set
或List
實現)。 ArrayList
是一個非常普遍的選擇。
A HashSet
是另一種可能的候選者。
Colllection<Foo> mc = new ArrayList<Foo>();
mc.add(new Foo());
mc.add(someFoo1=new Foo());
mc.add(new Foo());
mc.add(someFoo2=new Foo());
mc.remove(someFoo1);
mc.remove(someFoo2);
你想要的具體實現取決於你想要的其他屬性。
如果您希望通過索引保留已定義的訂單和訪問對象,則需要執行List
實施。 「默認」List
是ArrayList
。如果你經常刪除/添加元素除了結束,那麼LinkedList
將提供更好的性能(但大多數時候你不會注意到它們之間的差異)。
如果你想避免重複的對象,那麼你將需要一個Set
實現。 「默認」Set
爲HashSet
,但TreeSet
也偶爾使用,提供具有已定義順序的額外好處(但要求您提供Comparator
或確保所有元素均爲Comparable
)。
就像回答說的那樣,它是java.util.Set。如果你想使用Set,你必須在Foo類中實現equals和hashCode。 – 2011-03-10 13:55:51
@Victor:如果** Object的默認行爲(即每個對象只等於它自己),你**可以使用'HashSet'&co而不重寫'hashCode()'和'equals )是可以接受的! – 2011-03-10 13:59:26
@Joachim:是的,當然是 – 2011-03-10 14:07:06