java - 获取 HashMap 中所有值的大小>
问题描述
在我的 HashMap < String,List< String,String>> 中,我保存了键(建筑物的名称)和值(来自该建筑物中设备的 ID)。我只想从我的 HashMap 中的每个键中获取值的大小,但我得到的唯一大小是来自第一个 Key,Value 对......这是我的代码
Map<String, List<String>> moduleNamesWithAllParameters = new
HashMap<String, List<String>>();
List<String> parameters = new ArrayList<String>();
List<String> moduleNames = new ArrayList<String>();
Iterator it;
int start = 0, end = 0, mapKeys = 0;
parameters.add("kExmWoEM2HpMA4CT");
parameters.add("ILm1nApv06lDtqva");
parameters.add("gu00xoO5WPTv0SEr");
parameters.add("kX4FIg6c3C10msex");
parameters.add("xUcA4Y5rvqxlg8ju");
parameters.add("TYjydK6AyY7vwYSo");
parameters.add("#");
parameters.add("IDvHK1vXMiDEPxad");
parameters.add("ja0D3LH8ML0mQwZ0");
parameters.add("#");
parameters.add("tKgYRVvguvl3ByRc");
parameters.add("I95sFdAOoUTHjO7Y");
moduleNames.add("Building 1");
moduleNames.add("Building 2");
moduleNames.add("Building 3");
it = parameters.iterator();
for (int i = 0; i < moduleNames.size(); i++) {
do {
end++;
} while (it.hasNext() && !(it.next().equals("#")));
moduleNamesWithAllParameters.put(moduleNames.get(i), parameters.subList(start, end - 1));
start = end;
}
for (String key : moduleNamesWithAllParameters.keySet())
System.out.println(key + " = " + moduleNamesWithAllParameters.get(key));
Entry<String, List<String>> entry;
for (int i = 0; i < moduleNames.size(); i++) {
entry = moduleNamesWithAllParameters.entrySet().iterator().next();
mapKeys = entry.getValue().size();
System.out.println(mapKeys);
}
}
解决方案
这一行:
entry = moduleNamesWithAllParameters.entrySet().iterator().next();
不断在映射的条目集上创建一个新的迭代器并返回第一个条目。所以你只会看到第一个条目。
您可以更改循环以遍历所有条目,如下所示:
for (Entry<String, List<String>> entry : moduleNamesWithAllParameters.entrySet()) {
mapKeys = entry.getValue().size();
System.out.println(mapKeys);
}
推荐阅读
- full-text-search - MariaDB“自然语言模式”的语法是什么?
- ruby-on-rails - 如何在 FacebookAds::AdSet 对象上设置嵌套属性值
- html - 如何设置悬停后过渡的持续时间
- macos - 颤振医生:错误:无法连接到lockdownd,错误代码-21
- java - 当数据库结构与我们在使用 hibernate 的对象关系映射中指定的不匹配时对系统性能的影响
- node.js - ExpressJS:请求已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头
- bash - 在 unix 脚本中执行命令并计算时间
- python - AWS Lambda python 描述异常
- docker - 我如何在 Parse 独立容器中运行命令/打开终端
- reporting-services - SSRS:在导出到 Excel 时抑制 Tablix 上的隐藏行组