Java 流式处理具有条件的映射列表

Java 流式处理具有条件的映射列表,java,list,java-8,java-stream,Java,List,Java 8,Java Stream,我有一个如下列表: List<Map<String, String>> listOfMaps; for(Map m : listOfMaps) { if(m.get("someValue").equals("someOtherValue")) { resultMap.put(m.get("a"), m.get("b")) } } 我想用java8 streams来写这篇文章。您可以非常直接地将循环重写为流操作 listOfMaps

我有一个如下列表:

List<Map<String, String>> listOfMaps;
for(Map m : listOfMaps) { 
   if(m.get("someValue").equals("someOtherValue")) {
          resultMap.put(m.get("a"), m.get("b"))
     }
}

我想用java8 streams来写这篇文章。

您可以非常直接地将循环重写为流操作

listOfMaps.stream()
   .filter(m -> m.get("someValue").equals("someOtherValue"))
   .forEach(m -> resultMap.put(m.get("a"), m.get("b")));

我不太清楚它能带给你什么。

我认为你可以将所有结果收集到一张新地图上:

Map<String, String> resultMap = listOfMaps.stream()
    .filter(m -> "someOtherValue".equals(m.get("someValue")))
    .collect(Collectors.toMap(
        m -> m.get("a"),
        m -> m.get("b")));
Map resultMap=listofmap.stream()
.filter(m->“someOtherValue”。等于(m.get(“someValue”))
.collect(collector.toMap)(
m->m.get(“a”),
m->m.get(“b”);
Map resultMap=listofmap.stream().filter(m->m.get(“someValue”).equals(“someOtherValue”)).collect(toMap(m->m.get(“a”)、m->m.get(“b”)