首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中按对象属性拆分ArrayList?

如何在java中按对象属性拆分ArrayList?
EN

Stack Overflow用户
提问于 2019-03-25 08:21:16
回答 1查看 156关注 0票数 0

我正在写一个优化交通系统的程序。我有一个65,000名乘客的ArrayList“passenger”,每个乘客都有一个小时属性(1-24),以及其他属性。我想要遍历ArrayList并根据乘客的小时创建24个新的ArrayLists,这样我就可以使用每个列表来查找每个小时所需的交通工具。

代码语言:javascript
复制
//example of what I want to do for passengers in each hour
if (passengers.get(i).getAge() == 'C') {
    if (passengers.get(i).getTransportation() == 'S')
        subwayCount += 0.75;
    else if (passengers.get(i).getTransportation() == 'G')
        goTrainCount += 0.75;
    else if (passengers.get(i).getTransportation() == 'X')
        streetCarCount += 0.75;
    else if (passengers.get(i).getTransportation() == 'C')
        busCount += 0.75;
    else 
        goBusCount += 0.75;                 

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 08:31:05

您可以按小时属性进行分组,以获得如下所示的Map:

代码语言:javascript
复制
Map<Integer, List<Passenger>> hourToPassengersMap = passengers.stream()
        .collect(Collectors.groupingBy(Passenger::getHour));

像这样使用它:

代码语言:javascript
复制
List<Passenger> hour3Passengers = hourToPassengersMap.get(3);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55329875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档