我有一个地图
我想流式处理
列表中的所有值
我如何让它从地图返回值?
这样的地图:
("Frank", "Car")
("Bob", "Bike")
("Jim", "Truck")
我给它的钥匙清单:
["Frank","Jim"]
预期结果:
["Car","Truck"]
我试过了,但它只是打印键,而不是值。
keys.stream()
.filter(map::containskey)
.collect(Collectors.toList())
流式处理并过滤条目:
map.entrySet().stream()
.filter(e -> keys.contains(e.getKey()))
.map(Map.Entry::getValue)
.collect(Collectors.toList())
您只需检查Map
中是否存在键,如果存在,则将它们保留在结果流中。要将键替换为可以使用map()
的值
public static void main(String[] args) {
Map<String, String> cars = new HashMap<>();
cars.put("Frank", "Car");
cars.put("Bob", "Bike");
cars.put("Jim", "Truck");
List<String> keys = new ArrayList<>();
keys.add("Frank");
keys.add("Jim");
List<String> result = keys
.stream()
.filter(cars::containsKey)
.map(cars::get)
.collect(Collectors.toList());
System.out.println(result);
}
输出:
[Car, Truck]
有一张单子 如何过滤列表,通过获得最高的映射组,然后使用Java Stream组合到列表中?结果示例如下: ps:如果在多个地图中有相同的值,请将它们全部保留在列表中。 初始代码:
我有map,我想有一个列表,它按键的对应值排序(最小到最大)。我的尝试是:
我在迭代一个对象内的列表时遇到了一个问题,该对象内嵌在另一个映射中。我的目标是迭代这个列表并生成一个映射 ,我希望使用streams和lamdas来实现这一点。 我在上面看到了,我需要通过迭代FolderBo中的elementList从elementBo创建一个带有map 的映射。folderBo本身就在Modelbo的地图内。
假设我有一张房间清单 每个房间都有一份人员名单。 使用java8 streams,我想迭代房间列表,获取所有人员,在每个节点上执行一些方法(doSomething()),并获取所有过滤对象的列表。 这是使用java 8的最佳实践吗?
我有一个映射“m”和一个列表“l”,现在我想从那个映射“m”中获取值,使用“l”中可用的键列表。我想用Java 8流的概念,任何人都可以在这方面提供帮助。 我编码打印这些值,但我需要的是将值放入列表中 list.stream().foreach(s->{system.out.println(map.get(s));});
我正在用Java8为一个文件编写一个解析器。使用读取该文件,并返回一个顺序的。 每一行都映射到一个数据对象,如下所示: 现在我们可以将流中的每一行映射到相应的结果: 但是,流现在包含要删除的值: 如我在中所知,如果需要结果,我如何组合映射/筛选操作?