抱歉,如果这是一个菜鸟问题,但我正在摸索如何在 for 循环内向以下映射添加值:
private void filterSnakes() {
Map<Integer, Map<Integer, Integer>> mapSnakes
= new HashMap<Integer, Map<Integer, Integer>>();
int coutner = 0;
for(int i = 0; i < mGameAssets.length; i++)
{
if(mGameAssets[i].getAssetType().isSnake()){ //check if the asset is snake
mapSnakes.put(++coutner, i,mGameAssets[i].getDamage() );
}
}
}
我的意思是如何在mapSnakes
中添加一个新条目,关键部分没问题,但是值部分本身就是一个 map ,怎么样?
最佳答案
您需要首先创建或获取嵌套 map :
++counter;
if (!mapSnakes.containsKey(counter)) {
mapSnakes.put(counter, new HashMap<Integer, Integer>());
}
mapSnakes.get(counter).put(i,mGameAssets[i].getDamage());
在上面的代码中,如果嵌套映射不存在,则创建它。接下来,您使用 mapSnakes.get(counter)
获取 map 并向嵌套 map 添加内容。
关于java - 添加到一个 HashMap,其 Value 部分是另一个 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23177009/