Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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_Java 8 - Fatal编程技术网

Java 如何按属性对对象列表进行分组,然后使用(键,值)对迭代结果?

Java 如何按属性对对象列表进行分组,然后使用(键,值)对迭代结果?,java,java-8,Java,Java 8,我想按属性对对象列表进行分组,然后使用(Key,Value)对迭代结果 我在Java8中找到了使用属性对对象列表进行分组的方法,如下所示 // filteredPageLog has the filtered results from PageLog entity. Map<String, List<PageLog>> results = filteredPageLog.stream().collect(Collectors.groupingBy(p -> p.

我想按属性对对象列表进行分组,然后使用(Key,Value)对迭代结果

我在Java8中找到了使用属性对对象列表进行分组的方法,如下所示

// filteredPageLog has the filtered results from PageLog entity.

Map<String, List<PageLog>> results = 
filteredPageLog.stream().collect(Collectors.groupingBy(p -> p.getSessionId()));
使用


Java中没有元组。你可以找到更详细的解释。您可以迭代键、值或条目,但不能迭代元组。

Dummy
map

Map<String,String> map = new HashMap() {{
             put("1","20");
             put("2","30");
           }};


2.
Map.entrySet().forEach()
要求在这一行“results.entrySet().forEach(entry->{”上出现
Consumergetting空指针异常@talex@MohammedShirhaan这意味着
results
为空。当我调试时,entrySet有值@talex@What
null
then?for(Map.Entry:results.entrySet()){String sessionId=entry.getKey();List pageLogs=entry.getValue();//logic}//此操作已按所需方式完成:
results.forEach((键,值)->{//logic});
没有元组意味着?意味着没有像Scala中那样的语法糖,例如,请参阅。在Java中,您不能用(键,值)代替条目。只能作为重载方法的lambda,它接收合适的函数接口。不能写
不能用(键,值)代替条目
您确定吗?我忘了map.forEach(实际上是双重消费!别担心,我在检查你的概念。)
results.entrySet().forEach(entry -> {
     var key = entry.getKey();
     var value = entry.getValue();
//logic
});
Map<String,String> map = new HashMap() {{
             put("1","20");
             put("2","30");
           }};
map.forEach((keys,values) -> { String k = keys ;
                               String v= values;
                                //logic goes here
                              });
map.entrySet().forEach((entry) -> { String k = entry.getKey();
                                    String v= entry.getValue();
                                    //logic goes here
                                   });