A Map
заменяет предыдущее значение, если вы добавили новое значение для существующего ключа. Проверьте документацию , в которой говорится:
Если карта ранее содержала сопоставление для ключа, старое значение заменяется указанным значением.
Проверьте свой l oop, если вы всегда звоните put
с одним и тем же ключом. Если да, в конце, Map
будет иметь только одно значение, которое является последним введенным в него значением.
Убедитесь, что создан новый объект, на который ссылается map2
, как показано ниже:
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Testing {
public static void main(String[] args) {
HashMap<String,HashMap<String, List<String>>> map=new HashMap<String,HashMap<String, List<String>>>();
Map<String,List<String>> map2;
map2= new HashMap<>();
map2.put("classe1",List.of("s","adas","da","sd"));
map2.put("classe2",List.of("asda","fdd","ass"));
map.put("jar1", (HashMap<String, List<String>>) map2);
System.out.println(map);
map2= new HashMap<>();
map2.put("classe3",List.of("s","adas","da","sd"));
map2.put("classe4",List.of("asda","fdd","ass"));
map.put("jar2", (HashMap<String, List<String>>) map2);
System.out.println(map);
}
}
Вывод:
{jar1={classe2=[asda, fdd, ass], classe1=[s, adas, da, sd]}}
{jar2={classe4=[asda, fdd, ass], classe3=[s, adas, da, sd]}, jar1={classe2=[asda, fdd, ass], classe1=[s, adas, da, sd]}}