List<List<Map<Integer, Integer>>> map = new ArrayList<>();
// 처음에 행 공간을 창출해줘야함. 인접리스트와 똑같음.
for (int i = 0; i <= 11; i++) {
map.add(new ArrayList<>());
}
// 그러면 이제 열 공간을 창출해줘야함
// 아래 방식은 인접 리스트 방식인데, 인접 리스트 방식은 예를 들어 2번 정점과 연결된 정점이 3,4,5라고 가정하면
// 2 : [3], [4], [5] <= 이런식으로 저장되는 방식임
// 하지만 내가 원하는건 2차원 배열인데, 값이 Map으로 저장되는 것임
// 따라서, 각 행마다 열을 창출해줘야함
// for (int i = 0; i <= 11; i++) {
// map.get(i).add(new HashMap<>());
// }
// 올바른 방식
for (int i = 0; i <= 11; i++) {
for (int j = 0; j <= 11; j++) {
map.get(i).add(new HashMap<>());
}
}
// 조금 더 최적화한 방식
for (int i = 0; i <= 11; i++) {
// 행 자리를 먼저 창출하고
List<Map<Integer, Integer>> rowList = new ArrayList<>();
for (int j = 0; j <= 11; j++) {
// 해당 행에서 열 자리를 창출해주고
rowList.add(new HashMap<>());
}
// 해당 공간을 저장하는 방식
map.add(rowList);
}
// 제대로 공간이 창출됐는지 확인
for (int row = 0; row <= 10; row++) {
for (int col = 1; col <= 10; col++) {
System.out.print(map.get(row).get(col).toString() + " ");
}
System.out.println();
}
List<List<ArrayList<Integer>>> map = new ArrayList<>();
for (int i = 0; i <= 10; i++) {
map.add(new ArrayList<>());
}
for (int i = 0; i <= 10; i++) {
for (int j = 0; j <= 10; j++) {
map.get(i).add(new ArrayList<>());
}
}