Печатные элементы, хранящиеся в хэше хэша

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]
Другие вопросы по тегам