2013-11-09 2 views
0

Я использую карту внутри другой карты. Ключом внешней карты является Integer, а значение - другая Карта. Я получаю значения, как ожидалось, но я не знаю, как получить ключ и значение внутренней карты. Вот кодПолучить ключ и значение Карты, которая используется внутри другой карты (JAVA)

Map<Integer, Map<Integer, Integer>> cellsMap = new HashMap<Integer, Map<Integer, Integer>>(); 
Map<Integer , Integer> bandForCell = cellsMap.get(band_number); 
    if (bandForCell == null) 
     bandForCell = new HashMap<Integer, Integer>(); 
    bandForCell.put(erfcn, cell_found); 
    cellsMap.put(band_number, bandForCell); 

    csv.writeCells((Map<Integer, Map<Integer, Integer>>) cellsMap); 

public void writeCells (Map<Integer, Map<Integer, Integer>> cellsMap) throws IOException 
{ 
    for (Map.Entry<Integer, Map<Integer, Integer>> entry : cellsMap.entrySet()) { 
     System.out.println("Key: " + entry.getKey() + ". Value: " + entry.getValue() + "\n"); 
    }   
} 

вне положенного моей карты

Key: 20 Value: {6331=0, 6330=1, 6329=1, 6328=0, 6335=1, 6437=0, 6436=1} 

значение в приведенном выше выводе является еще одной картой. Как я могу получить ключ и значение внутренней карты от значения внешней карты?

как ключи внутренних карт = 6331, 6330, 6329 .... и значение внутренней карты = 0, 1, 1, 0 ...

Благодаря

ответ

0

Для того, чтобы получить ссылаясь на внутреннюю карту, вы бы просто использовали cellsMap.get(key). Я не уверен, что именно вы хотите сделать, но, к примеру, если вы хотите, чтобы получить значение, где первый ключ был i и второй ключ был j, вы можете получить его с помощью cellsMap.get(i).get(j)

Или, если вы хотите, чтобы напечатать все ключи и значения внутренней карты по индексу i, вы могли бы использовать

 
for (Map.Entry> entry : cellsMap.get(i).entrySet()) { 
     System.out.println("Key: " + entry.getKey() + ". Value: " + entry.getValue() + "\n"); 
    } 
+0

что я Вот ? – Wearybands

+0

Я - ключ для первой карты. Чтобы получить один из карт второго уровня, вам нужен ключ для поиска! если бы вы были более конкретными в том, что вам нужно сделать, я мог бы помочь вам лучше :) – mattdee123

+0

Мне нужно, чтобы получить ключ внешней карты, а затем значение внешней карты и значение внешней карты другая карта, поэтому я хочу получить значение внешней карты как отдельный ключ и значение внутренней карты ... надеюсь, что это помогло – Wearybands

2

Это работает для меня, надеюсь, это поможет кому-то еще в будущем

for (Map.Entry<Integer, Map<Integer, Integer>> outer : cellsMap.entrySet()) { 
    System.out.println("Key: " + outer.getKey() + "\n"); 
    for (Map.Entry<Integer, Integer> inner : entry.getValue().entrySet()) { 
     System.out.println("Key = " + inner.getKey() + ", Value = " + inner.getValue()); 
    } 
} 
Смежные вопросы