gpt4 book ai didi

java - 从 hashMap 值中获取 id 列表的最佳方法

转载 作者:行者123 更新时间:2023-11-29 04:16:32 26 4
gpt4 key购买 nike

我有一个 HashMapInteger作为键和 List<Employee>作为值(value)观。我想得到所有 Ids来自所有ValuesHashMap

List<Long> ids = new ArrayList<>();
hm.forEach((key, value) -> {
List<Integer> c = value.stream()
.map(Employee::getId).collect(Collectors.toList());
ids.addAll(c);
}

到目前为止,这是我正在尝试做的事情。有没有办法直接从 HashMap 的值流式传输?并获得所有不同的值?

最佳答案

hm.values()
.stream()
.flatMap(List::stream)
.map(Employee::getId)
.collect(Collectors.toSet());

由于您只对 ID 感兴趣,因此流过 HashMapvalues,并且由于每个都是 List(s),您将使用 flatMap,其余的可能是显而易见的。此外,由于正如您所说,它们是不同的,因此 Set 的返回类型更有意义。

如果您仍然需要一个 List,只需使用:

.... .map(Employee::getId)
.distinct()
.collect(Collectors.toList())

关于java - 从 hashMap 值中获取 id 列表的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52049456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com