из них будет занимать меньше памяти?
заполнив map'у по ней нужно будет проитерироваться, пройдя по всем numbers относящимся к name
1)
Map<String, List<Integer>> name2numbers = new HashMap<>();
if (!name2numbers.containsKey(name)) {
name2numbers.put(name, new ArrayList<>());
}
name2numbers.get(name).add(number);
alex = [1,2,3,4,5, ....]
vova = [999,888,777,666,555, ....]
2)
Map<String, Integer> name2numbers = new HashMap<>();
name2numbers.put(name+"#"+number, number);
alex#1=1
alex#2=2
alex#3=3
alex#4=4
vova#999=999
vova#888=888
лист значений может быть очень громадным, больше миллиона записей
1. на миллионе выбор структуры погоды в части объема не сделает, нужно начинать с того как использовать будете данные, а то мало ли там полный обход всегда 2. у вас вторая структура легко сводится к обычному сету из объекта из двух полей, в котором сделаны нормально хешкод и еквалс
Обсуждают сегодня