作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
"b", 4 -> "d"} theMap, 我有一个 ArrayList {1,2,3} someKeys 我该怎么做: Array-6ren">
基本上,假设我有一个 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/
我是一名优秀的程序员,十分优秀!