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流中获取具有最大频率的对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oc基础-self关键字的使用
- 下一篇: Error: could not ope