java – 如何按属性对对象列表进行分组,然后使用(Key,Value)对迭代结果?

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

我已经在Java 8中找到了使用如下属性对对象列表进行分组的方法

// filteredPageLog has the filtered results from PageLog entity.

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

但结果将只有入口集(在entrySet属性中有值). keySet和valueSet将具有空值.我想迭代一些类似的东西

results.forEach((key,value) -> {
//logic
});

解决方法

使用

results.entrySet().forEach(entry -> {
     var key = entry.getKey();
     var value = entry.getValue();
//logic
});

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...