Предполагается, что этот простой метод добавляет элементы в HashMap.Элементы читаются из текстового файла, я проверил это, и все, что касается этой области, работает просто отлично.Проблема возникает, когда я печатаю значения, которые есть на карте. Поэтому я думаю, что при добавлении их могут возникнуть некоторые проблемы.
Содержимое txt-файла:
SW: (scores, 90); (scores, 91); (scores, 92);
ГдеРазрешения - "SW", а Атрибуты - "(баллы, 90) ... (баллы, 92)".Это элементы, используемые в следующих методах.
public Map<Permissions, ArrayList<Attributes>> paMap;
public void addMap(Permissions per, Attributes att) {
if(paMap.containsKey(per)) {
paMap.get(per).add(att);
}
else{
ArrayList<Attributes> attList = new ArrayList<Attributes>();
attList.add(att);
paMap.put(per, attList);
}
}
//Attributes contain variables (Scores) and values(90-93), that is just for printing
public void printMap() {
ArrayList<Attributes> list;
for(Permissions p: paMap.keySet()) {
list = paMap.get(p);
System.out.print(p.name + ": ");
for(Attributes l: list) {
System.out.print("<" + l.variable +", " + l.value + ">; ");
}
System.out.println();
}
Когда я печатаю Карту, я ожидаю получить то же самое, что и в текстовом файле, но вместо этого я получаю
SW: (баллы 92);(баллы 92);(очки, 92)
Даже если я удаляю строку paMap.get(per).add(att)
из метода addMap, я получаю SW: (оценки, 92);
Кроме того, я проверил, если дляцикл вызывается правильно, и это так.
Поэтому я запутался в том, как обновляются атрибуты в ArrayList и каков будет правильный способ сделать это.Видите ли вы какие-либо ошибки в способе добавления или печати значений?
Спасибо за помощь