java对象流读取完毕_从Java 8流中获取具有最大频率的对象
我有一個(gè)帶有city和zip字段的對(duì)象,我們稱之為Record.
public class Record() {
private String zip;
private String city;
//getters and setters
}
現(xiàn)在,我有一些這些對(duì)象的集合,我使用以下代碼通過(guò)zip對(duì)它們進(jìn)行分組:
final Collection records; //populated collection of records
final Map> recordsByZip = records.stream()
.collect(Collectors.groupingBy(Record::getZip));
所以,現(xiàn)在我有一個(gè)地圖,其中鍵是zip,值是帶有該zip的Record對(duì)象列表.
我現(xiàn)在想要的是每個(gè)拉鏈最常見(jiàn)的城市.
recordsByZip.forEach((zip, records) -> {
final String mostCommonCity = //get most common city for these records
});
我想對(duì)所有流操作執(zhí)行此操作.例如,我可以通過(guò)這樣做獲得每個(gè)城市的頻率圖:
recordsByZip.forEach((zip, entries) -> {
final Map frequencyMap = entries.stream()
.map(GisSectorFileRecord::getCity)
.filter(StringUtils::isNotBlank)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
});
但我希望能夠進(jìn)行單線流操作,這將只返回最頻繁的城市.
是否有任何Java 8流專家可以在這方面有所作為?
總結(jié)
以上是生活随笔為你收集整理的java对象流读取完毕_从Java 8流中获取具有最大频率的对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oc基础-self关键字的使用
- 下一篇: Google Guava学习笔记——基础