Каждая 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
).