gpt4 book ai didi

java - 如何使用另一个列表中的 map 属性创建新列表

转载 作者:行者123 更新时间:2023-12-01 22:04:50 24 4
gpt4 key购买 nike

假设我有一个 List<Map<String,Object>> :

[{'id':1,'name':'xyz'},{'id':2,'name':'abc'},{'id':3,'name':'pqr'}]

我需要生成另一个列表,包括上面列表中的名称:

List<String>

避免使用循环,是否可以使用java stream api来实现?

最佳答案

List<String> names = list.stream()
.map(i -> i.get("name").toString())
.collect(Collectors.toList());

由于 i.get("name").toString() 可能会产生 NPE,因此过滤掉不包含键 "name" 的映射是明智的>:

List<String> names = list.stream()
.filter(i -> i.containsKey("name"))
.map(i -> i.get("name").toString())
.collect(Collectors.toList());

List<String> names = list.stream()
.map(i -> i.get("name"))
.filter(Objects::nonNull)
.map(Object::toString)
.collect(Collectors.toList());

关于java - 如何使用另一个列表中的 map 属性创建新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52478909/

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