Печатные элементы, хранящиеся в хэше хэша
final HashMap<Integer, HashMap<Integer, Integer[]>> teams;
teams= new HashMap<Integer, HashMap<Integer, Integer[]>>();
teams.put(1,new HashMap<Integer, Integer[]>(){{
put(2,new Integer[] { 1,0});}});
System.out.println(teams.get(1).get(2));
Я пытаюсь реализовать хэш хэшей в Java. Мне нужно напечатать целочисленный массив, хранящийся в хэш хэш. Любая помощь в этом отношении будет принята с благодарностью.
2 ответа
Ваш код верен (я только переписал здесь), и я добавил вызов метода Arrays.toString в ваш вызов println.
final HashMap<Integer, HashMap<Integer, Integer[]>> teams;
teams = new HashMap<Integer, HashMap<Integer, Integer[]>>();
teams.put(1, new HashMap<Integer, Integer[]>() {
{
put(2, new Integer[] { 1, 0 });
}
});
System.out.println(Arrays.toString(teams.get(1).get(2)));
Примечание: код teams.get(1).get(2)
возвращает тип Integer[].
teams.get(1)
получит HashMap, в данном примере его ключ равен 2, а его значение представляет собой массив целых чисел (Integer[]) с элементами [1,0]
teams.get(1).get(2)
возвращает значения, тип которых Integer[]
,
Вы НЕ МОЖЕТЕ распечатать его значение через System.out.println(teams.get(1).get(2))
напрямую, потому что toString не реализован.
Есть 2 способа напечатать элемент в массиве следующим образом:
1 вы можете напечатать элемент в массиве, используя его индекс,
лайк
System.out.println(teams.get(1).get(2)[0]);//print 1
System.out.println(teams.get(1).get(2)[1]);//Print 0
ИЛИ ЖЕ
2 Использование Arrays.toString
способ печати всех элементов в массиве,
лайк
System.out.println(Arrays.toString(teams.get(1).get(2)));//Print [1,0]