2015-04-09 2 views
0

Я объявляю мою карту так:Loop через карту, содержащую строки и другую карту

Map<Integer, Map<Integer, Integer>> junctions = new HashMap<>();

и заполнить его данными:

for (int i = 0; i < N; i++) { 
      String[] coordinates = s.nextLine().split(" "); 
      junctions.put(i, new HashMap<Integer, Integer>()); 
      junctions.get(i).put(Integer.parseInt(coordinates[0]), Integer.parseInt(coordinates[1])); 
     } 

Но я не могу напечатать или использовать его содержимое.

Я пробовал так:

for (Map<Integer, Map<Integer, Integer>> m : junctions.entrySet()) { 
      System.out.println(m.getKey() + "/" + m.getValue()); 
     } 

Я также попытался использовать junctions.values() вместо junctions.entrySet()

Что мне нужно сделать?

+1

Ваш примерный код выглядит так, как вы можете заменить карту на верхнем уровне списком, поэтому e. г. 'List >'. Или даже лучше что-то вроде «List >». – aleju

ответ

2

Это должно быть

for (Map.Entry<Integer, Map<Integer, Integer>> e : junctions.entrySet()) { 
    System.out.println(e.getKey() + "/" + e.getValue()); 
} 

или

for (Map<Integer, Integer> m : junctions.values()) { 
    System.out.println(m); 
} 

в зависимости от того, что вы хотите напечатать.

+0

ах - глупая ошибка у меня. Благодарю. –

Смежные вопросы