Как положить в ArrayList несколько различных значений?
Добрый день. Какую структуру данных мне использовать или как положить несколько "Парралельных " значений в ArrayList. Собственно хочется получить что то типа : ArrayList<String,Long,HashMap>.
UPD: Поправил пример того что хочется получить. Без выделения кода съело скобки.
DDwrt100, можно создать класс, в котором будут храниться поля этих типов. А потом уже создать ArrayList этого нового класса и через него обращаться
типа
class A {
String s;
Long l;
HashMap m;
}
priority, думал о таком варианте , не хочется городить еще один класс. Думал может есть какаянибудь структура данных, которую можно влепить в текущий класс.
List list = new ArrayList();
list.add("string");
list.add(5L);
list.add(new HashMap());
Просто не используете Generics, а как в стародавние времена - Raw Types. Но тогда теряются все прелести типобезопасности. При извлечении элементов из такого списка нужно будет проверять класс элемента, приводить от Object к конкретному классу. Такой подход вреден, ибо сегодня вы помните, что там лежит, а завтра нет. Или ваш коллега этого знать не будет. Также вы сами можете ошибиться и положить туда что-то, чего ожидать не будете. Это как бросить в мешок, а потом тянуть с закрытыми глазами надеясь на удачу.
Лучше напишите отдельный класс (это нормальная практика - см. data transfer object), как предложил priority.
Frozen Coder, Ответ на вопрос зачем. Мне надо реализовать сложную выборку из базы данных. И у меня не получается все собрать одним перебором(несколько вложенных циклов for грубо говоря). И мне нужна была структура данных, которая бы относительно уровня выборки могла хранить упорядоченные данные.
В идее должно плучиться что то выбери все элементы из массива где String имеет значение 100, и добавь их в класс отображения результатов.
Честно говоря сижу уже около недели по разному кручу циклы =) Мне уже сниться эта задача =)))
DDwrt100, найти ещё один идентификатор для этих строк и сделать Map<String, Map<String, List<MyElement>> тут можно новый идентификатор использовать либо как ключ в первой мапе, либо как во второй - как удобнее.