首页 > 解决方案 > 在 Java 中的循环内初始化 HashMap

问题描述

我正在处理的当前班级作业要求我们使用哈希图来查找列表中的常见元素,同时还要跟踪给定嵌套数组列表的重复项(因此,如果多个列表有三个 3,我需要跟踪它)。我们被告知为每个列表制作一个哈希图,然后使用哈希图更有效的搜索功能将列表相互比较。我不确定是否有办法为每个数组动态创建一个新的哈希图。我避免对哈希图进行硬编码(知道有 4 个列表并在循环之前初始化 4 个哈希图)。有没有办法在我的循环中初始化和命名新的哈希图?如果没有,是否有更好的方法将列表转换为哈希图?谢谢!

HashMap<Integer, Integer> allCollections = new HashMap<>();

//Iterates through each list
for (int i = 0; i < collections.size(); i++) {
  //Iterates the elements in the lists
  for (int j = 0; j < collections.get(i).size(); j++) {
    // convert to hashmap here
    if (allCollections.get(collections.get(i).get(j)) == null) {
      // add to hashmap for first time
      allCollections.put((Integer) collections.get(i).get(j), 1);
    } else {
      // Update value for pre-existing key
      allCollections.put((Integer) collections.get(i).get(j), allCollections.get(collections.get(i).get(j)) + 1);
    }
  }
}

标签: javafor-loophashmap

解决方案


推荐阅读