我在另一个地图中使用地图,外部地图的键是Integer,值是另一个Map。我得到了预期的值,但我不知道如何获得内部地图的关键和价值。 这是代码
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 :(得分: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());
}
}
答案 1 :(得分: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"); }