Java HashMap: добавление в массив - PullRequest
4 голосов
/ 02 декабря 2011

Я использую класс HashMap, и он выглядит так:

HashMap<String, ArrayList<String>> fileRank = new HashMap<String, ArrayList<String>>();

Мне интересно, как добавить новую строку в Arraylist после первоначального размещения.

fileRank.put(word, file1);

Я бы хотел добавить файл2 после файла1 к ​​ключу: слово сверху.

Ответы [ 5 ]

5 голосов
/ 02 декабря 2011

Сначала вы должны получить список массивов:

ArrayList<String> list = fileRank.get(word);
list.add(file1);

Конечно, все становится сложнее, если вы еще не знаете, есть ли запись для этого ключа.

ArrayList<String> list = fileRank.get(word);
if (list == null) {
    list = new ArrayList<String>();
    fileRank.put(word, list);
}
list.add(file1);
3 голосов
/ 02 декабря 2011

Вы запрашиваете у карты значение для определенного ключа, который является ArrayList, для которого вы можете вызвать add.

String key = "myKey";
fileRank.put( key, new ArrayList<String>() );
//...
fileRank.get( key ).add( "a value");
2 голосов
/ 02 декабря 2011

Получите ArrayList на основе ключа String, сделайте add() для ArrayList и затем поместите его обратно в HashMap (необязательно, поскольку карта уже содержит ссылку на него);

fileRank.get(word).add(String)
fileRank.put(work, list);
0 голосов
/ 02 октября 2013

закрытая статическая HashMap> mmArrays = new HashMap> ();

mmArrays.put (ключ, данные);

0 голосов
/ 02 декабря 2011

Возможное решение:

public class MyContainer {

    private final Map<String, List<String>> myMap = new HashMap<String, List<String>>();

    public void add(String key, String value) {
        if(myMap.containsKey(key)) {
            myMap.get(key).add(value);
        } else {
            ArrayList<String> newList = new ArrayList<String>();
            newList.add(value);

            myMap.put(key, newList);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...