Как динамически добавить несколько значений к одному ключу в HashMap? - PullRequest
0 голосов
/ 15 сентября 2018

Я хочу добавить несколько значений карты к отдельному ключу в HashMap во время выполнения, если я дам такой ввод, как

s 2 
d 5 
s 3 
d 7 
s 4 

, он должен выдать вывод, например

s 2 3 4 
d 5 7

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

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

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/MultiValueMap.html

https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/map/MultiValueMap.html

https://google.github.io/guava/releases/21.0/api/docs/com/google/common/collect/Multimap.html

0 голосов
/ 15 сентября 2018

Подсказка: Для этого вам необходимо использовать ArrayList в качестве значений и String в качестве ключей в HashMap. Вот пример:

HashMap<String, ArrayList<Integer>> myMap = new HashMap<>();
ArrayList<Integer> list = new ArrayList<>();
list.add(2);
list.add(3);
list.add(4);
myMap.put("s", list);

Если есть ключ n, то для динамического добавления значений к каждому ключу вы можете сделать следующее:

//1. Get the value (list here) for the key you want to add new values. 

ArrayList<Integer> myList =  myMap.get("s");

//2. Check if myList is null
if(myList==null){
    myList = new ArrayList<Integer>();
}

//3. Now add the values to this list.


myList.add(5);
...