在哈希映射中查找值的数量?

2022-09-05 00:35:08

在 .HashMap

我不是指.size()方法,因为它计算键的数量。我想要所有键中的总数。

我想这样做,因为我的键是 一个,但我的值是一个 。StringList


答案 1

在Java 8中,您还可以使用API:Stream

int total = map.values()
               .stream()
               .mapToInt(List::size) // or (l -> l.size())
               .sum()

这样做的好处是,您不必像在 Java 8 之前的解决方案中那样重复变量的类型:List<Foo>for

int total = 0;
for (List<Foo> list : map.values())
{
    total += list.size();
}
System.out.println(total);

除此之外,尽管不建议这样做,但您也可以在不需要临时变量的情况下以内联方式使用该值:

System.out.println(map.values().stream().mapToInt(List::size).sum());

答案 2

最简单的方法是迭代并添加列表大小。

int total = 0;
for (List<Foo> l : map.values()) {
    total += l.size();
}

// here is the total values size