0

我在另一个地图中使用地图,外部地图的键是整数,值是另一个地图。我得到了预期的值,但我不知道如何获取内部映射的键和值。这是代码

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 ...

谢谢

4

2 回答 2

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());
    }
 }  
于 2013-11-09T15:52:32.513 回答
0

为了获得对内部地图的引用,您只需使用cellsMap.get(key). 我不确定您到底想做什么,但是,例如,如果您想获取第一个键i和第二个键的值j,您可以使用cellsMap.get(i).get(j)

或者,如果您想在 index 处打印出内部映射的所有键和值i,您可以使用

for (Map.Entry> entry : cellsMap.get(i).entrySet()) {
        System.out.println("键:" + entry.getKey() + "。值:" + entry.getValue() + "\n");
    }  
于 2013-11-09T15:21:43.687 回答