Во-первых, я бы порекомендовал вам использовать дженерики.Например, если вы собираетесь определить абстрактный класс (или, возможно, лучший интерфейс Item
), создайте new ArrayList<Item>
, чтобы вы не смогли добавить туда ничего, кроме Item
.
Во-вторых, используйте интерфейс.Ваше определение должно выглядеть следующим образом:
List<? extends Item> lll = new ArrayList<Item>();
Выбор основной структуры данных зависит от ваших потребностей.Я считаю, что вы собираетесь выполнять какие-то поисковые механизмы.В этом случае, вероятно, вы можете использовать Map
или объединить список, в котором вы будете хранить все объекты последовательно, и несколько карт, которые помогут вам выполнять поиск по различным параметрам.
В любом случае вам следует заключить структуру данных в некоторый класс (модель), который обеспечивает базовую функциональность вашей бизнес-логики, поэтому, если вы хотите что-то изменить, вы можете сделать это в этом классе без каких-либо изменений в других частях вашегоприложение.