欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

java对象流读取完毕_从Java 8流中获取具有最大频率的对象

发布时间:2023/12/10 java 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java对象流读取完毕_从Java 8流中获取具有最大频率的对象 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我有一个带有city和zip字段的对象,我们称之为Record.

public class Record() {

private String zip;

private String city;

//getters and setters

}

现在,我有一些这些对象的集合,我使用以下代码通过zip对它们进行分组:

final Collection records; //populated collection of records

final Map> recordsByZip = records.stream()

.collect(Collectors.groupingBy(Record::getZip));

所以,现在我有一个地图,其中键是zip,值是带有该zip的Record对象列表.

我现在想要的是每个拉链最常见的城市.

recordsByZip.forEach((zip, records) -> {

final String mostCommonCity = //get most common city for these records

});

我想对所有流操作执行此操作.例如,我可以通过这样做获得每个城市的频率图:

recordsByZip.forEach((zip, entries) -> {

final Map frequencyMap = entries.stream()

.map(GisSectorFileRecord::getCity)

.filter(StringUtils::isNotBlank)

.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

});

但我希望能够进行单线流操作,这将只返回最频繁的城市.

是否有任何Java 8流专家可以在这方面有所作为?

总结

以上是生活随笔为你收集整理的java对象流读取完毕_从Java 8流中获取具有最大频率的对象的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。