Добавить записи в ArrayList в HashMap

Вопрос: У меня есть ArrayList с некоторыми записями как значение в HashMap, как добавить к нему новые значения? Спасибо. Так вот: Map index = new HashMap(); void add(String kword, String... urls){ if(index.containsKey(kword)){ index.get(kword).addAll(Arrays.asList(urls)); } else { index.put(kword, (ArrayList) Arrays.asList(urls)); } } Лучший ответ: Предполагая, что у вас есть что-то в этом роде: Map

Вопрос:

У меня есть ArrayList с некоторыми записями как значение в HashMap, как добавить к нему новые значения?

Спасибо. Так вот:

Map<String, ArrayList<String>> index = new HashMap<String, ArrayList<String>>(); void add(String kword, String… urls){ if(index.containsKey(kword)){ index.get(kword).addAll(Arrays.asList(urls)); } else { index.put(kword, (ArrayList<String>) Arrays.asList(urls)); } } Лучший ответ:

Предполагая, что у вас есть что-то в этом роде:

Map<K, ArrayList<V>> map = new HashMap<K, ArrayList<V>>();

то это должно позволить вам добавлять новые значения в любой список, который содержится в качестве значения на карте:

map.get(listKey).add(newValue);

Естественно, вы также можете сохранить результат map.get(listKey) во временную переменную, чтобы избежать стоимости map.get() при вставке нескольких значений:

List<V> list = map.get(listKey); for (V value : newValues) list.add(value); Ответ №1

В зависимости от того, какие значения вы хотите добавить из своего HashMap. Это записи, ключи или значения? Вы можете перебирать любые записи, ключи или значения на карте и добавлять те, которые вы хотите в свой список.

В приведенном ниже примере entrySet() записи с карты, используя entrySet() в HashMap. Предполагается, что у вас есть способ проверить, является ли запись той, которую вы ищете (isThisTheEntryIAmLookingFor(…)).

Map<String, String> map; //… ArrayList<Map.Entry<String, String>> list = new ArrayList<Entry<String, String>>(); for (Map.Entry<String, String> e : map.entrySet()) { if (isThisTheEntryIAmLookingFor(e)) { list.add(e); } }

Если вы хотите просто собирать ключи или значения, используйте keySet() или values() соответственно, с правильными типами.

Ответ №2

Если у вас есть ArrayList<String>, выполните следующие действия:

List<String> l = map.get(«your_key»); l.add(«Some Other Value»);

Это довольно простой способ использовать этот фрагмент кода со списком, отличным от экземпляров String. Просто используйте правильный общий.

Ответ №3

Вы могли бы найти, что ваша жизнь значительно упростилась с Multimap типа Multimap Guava – в частности, ArrayListMultimap – который заботится обо всей этой глупости для вас.

Оцените статью
Добавить комментарий