"b", 4 -> "d"} theMap, 我有一个 ArrayList {1,2,3} someKeys 我该怎么做: Array-6ren">
gpt4 book ai didi

java - 如何将键数组输入到映射中,并取出与这些键对应的值数组?

转载 作者:行者123 更新时间:2023-11-30 07:02:38 25 4
gpt4 key购买 nike

基本上,假设我有一个 Map < Integer, String> {1 -> "a", 2 -> "b", 4 -> "d"} theMap,

我有一个 ArrayList < Integer> {1,2,3} someKeys

我该怎么做:

ArrayList<String> someValues = theMap.get(someKeys);

并且让 someValues 的内容为 {"a", "b", null}

看起来是一个很简单的问题,但我花了半个小时搜索,但找不到任何东西。一定有比这更好的方法

for(int i = 0; i<someKeys.size(); i++
{
someValues.add(theMap.get(someKeys.get(i));
}

最佳答案

您可以使用Stream:

List<String> values = someKeys.stream()
.map(k->theMap.get(k))
.collect(Collectors.toList());

这将为 Map 中未出现的键添加空值,您可以通过额外的过滤步骤将其消除:

List<String> values = someKeys.stream()
.map(k->theMap.get(k))
.filter(Objects::nonNull)
.collect(Collectors.toList());

List<String> values = someKeys.stream()
.filter(k->theMap.containsKey(k))
.map(k->theMap.get(k))
.collect(Collectors.toList());

关于java - 如何将键数组输入到映射中,并取出与这些键对应的值数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40629347/

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