gpt4 book ai didi

java - 根据键列表过滤 map

转载 作者:搜寻专家 更新时间:2023-10-31 19:43:23 26 4
gpt4 key购买 nike

我有如下的 map :

class Person {

Long personId;
String name;

/*Getters and Setters*/
}

我填充了 map Map<Long, Person> personMap = new HashMap<>();

map 的关键是 personId 本身。我有一个这样的 personIds 列表,

List<Long> coolPeople = new ArrayList<>();

现在我想遍历 map 并获取所有具有与列表中的 id 对应的键的值 coolPeople ,然后将其存储在列表中。

如何在 Java 8 中以最佳方式实现这一点?

最佳答案

迭代 List 的标识符会更有效并在 Map 中查找它们, 因为在 HashMap 中按键搜索需要预期O(1)时间,同时在 List 中搜索可以拿O(n)最坏情况下的时间。

List<Person> people = 
coolPeople.stream()
.map(id -> personMap.get(id)) // or map(personMap::get)
.filter(Objects::nonNull)
.collect(Collectors.toList());

关于java - 根据键列表过滤 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43848984/

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