Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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 使用现有列表中HashMap的值创建一个新列表_Java_Arraylist_Linkedhashmap - Fatal编程技术网

Java 使用现有列表中HashMap的值创建一个新列表

Java 使用现有列表中HashMap的值创建一个新列表,java,arraylist,linkedhashmap,Java,Arraylist,Linkedhashmap,我想从现有列表中的地图创建一个新列表 我得到了如下结构的数组列表 ArrayList 0 = {LinkedHashMap} 0 = {LinkedHashMapEntry} "name" --> "value" 1 = {LinkedHashMapEntry} "surname" --> "value" 1 = {LinkedHashMap}

我想从现有列表中的地图创建一个新列表

我得到了如下结构的数组列表

ArrayList
         0 = {LinkedHashMap}
                   0 = {LinkedHashMapEntry} "name" --> "value"
                   1 = {LinkedHashMapEntry} "surname" --> "value"
         1 = {LinkedHashMap}
                   0 = {LinkedHashMapEntry} "name" --> "value"
                   1 = {LinkedHashMapEntry} "surname" --> "value"
         ....
我要做的是将所有名称值作为一个新列表获取

List<String> allNames = ....
列出所有名称=。。。。
使用Java Stream是否有办法获取此列表?

是:

List<String> allNames =
    list.stream() // this creates a Stream<LinkedHashMap<String,String>>
        .map(m->m.get("name")) // this maps the original Stream to a Stream<String>
                               // where each Map of the original Stream in mapped to the
                               // value of the "name" key in that Map
        .filter(Objects::nonNull) // this filters out any null values
        .collect(Collectors.toList()); // this collects the elements
                                       // of the Stream to a List
列出所有名称=
list.stream()//这将创建一个流
.map(m->m.get(“name”)//这将原始流映射到一个流
//其中,中原始流的每个映射映射到
//该映射中“name”键的值
.filter(Objects::nonNull)//这将过滤掉所有空值
.collect(Collectors.toList());//这将收集元素
//将流的名称添加到列表中

您能解释一下吗?我在我的IDE上尝试了类似的东西,但没有得到这个.map(m->m.get(“name”)东西。由于列表是地图,它不会以“m”的形式传递地图吗?@Bilbobagkins请参见编辑。是的,
m
的类型是
Map
(或者
LinkedHashMap
,这取决于您声明输入的方式
List
)附带说明:
filter(Objects::nonNull)
不是必需的。@Eran谢谢:)@davidxxx在输出
列表中避免
null
对我来说很有意义。