我有这个HashMap<String, ArrayList<Item>>,有没有办法计算地图中所有列表中的项目总数而不通过所有列表?
或者我应该遍历地图和所有列表吗?
小智 17
使用为HashMap定义的size()方法.
HashMap<String, ArrayList<Item>> hMap = new LinkedHashMap<String, ArrayList<Item>>();
int hSize;
/*
put/remove operations
*/
hSize = hMap.size(); // Gives the total no. of elements of HashMap
Run Code Online (Sandbox Code Playgroud)
lin*_*nqu 17
从Java 8开始,您可以使用单行程序实现这一目标:
Integer sum = map.values().stream().mapToInt(List::size).sum();
Run Code Online (Sandbox Code Playgroud)
nan*_*nda 11
您可能希望查看Google Guava并使用Multimap而不是它.Multimap.size()方法将提供您想要的答案.
您需要迭代List<Item>您的值Map并计算总数.我们Map不知道你投入了什么价值,所以它无法提供一个能够让你获得总价值的设施.您需要的代码非常简单:
int total = 0;
for (List<Item> list : map.values()) {
total += list.size();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73075 次 |
| 最近记录: |