Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用另一个列表中地图的属性创建新列表_Java_List_Dictionary_Java 8_Java Stream - Fatal编程技术网

Java 如何使用另一个列表中地图的属性创建新列表

Java 如何使用另一个列表中地图的属性创建新列表,java,list,dictionary,java-8,java-stream,Java,List,Dictionary,Java 8,Java Stream,假设我有一个列表: 我需要生成另一个列表,包括上面列表中的名称: List<String> 列表 避免使用循环,是否可以通过使用java流api来实现这一点 List<String> names = list.stream() .map(i -> i.get("name").toString()) .collect(Collectors.toList()); 或

假设我有一个
列表

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

List<String>
列表
避免使用循环,是否可以通过使用java流api来实现这一点

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

List name=List.stream()
.map(i->i.get(“名称”))
.filter(对象::非空)
.map(对象::toString)
.collect(Collectors.toList());

i.getOrDefault(i,“other”)怎么样?@HadiJ然后我们必须从结果中筛选出
“other”
s,对吗?可能是
map(i->i.get(“name”).filter(name->name!=null)。map(name->name.toString())
为了防止
包含skey
?我们不知道我们有什么类型的映射。
containsKey
可能很贵。你怎么想?另一方面,可能有一个带有键
“name”
的etnry,但是OP应该清除相应的值是否为
null
(看起来不是这样)。我认为可能不是
containsKey
错了,但是使用
containsKey
然后立即
get
意味着在地图中每个当前键有2次查找,而使用
get
然后
!=空
List<String> names = list.stream()
                         .map(i -> i.get("name").toString())
                         .collect(Collectors.toList());
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());