java - 添加到一个 HashMap,其 Value 部分是另一个 HashMap

标签 java hashmap

抱歉,如果这是一个菜鸟问题,但我正在摸索如何在 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/

相关文章:

java - 如何编写与正常流程分开的区域特定逻辑?

java - 如何通过外部Servlet调用EJB 3.0

C++(哈希)映射速度优化

java - 根据不同的参数将集合(使用 java 8 流)拆分为更小的组件

java - JPA ConstraintViolationException 外键值为 null

Java:这足以删除对象吗?

java - map 中的 3 亿个项目

java - 从 hashmap 中检索值并返回

c++ - 插入 map

java - 需要提示用户输入整数,直到输入二进制数