【问题标题】:How to split ArrayList by object attribute in java?如何在java中按对象属性拆分ArrayList?
【发布时间】:2019-03-25 00:21:16
【问题描述】:

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

//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;                 

}

【问题讨论】:

  • 如果我了解您是否需要根据小时属性按乘客数组列表分组?不清楚

标签: java sorting arraylist


【解决方案1】:

您可以按小时属性分组以获得这样的地图:

Map<Integer, List<Passenger>> hourToPassengersMap = passengers.stream()
        .collect(Collectors.groupingBy(Passenger::getHour));

像这样使用它:

List<Passenger> hour3Passengers = hourToPassengersMap.get(3);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 2019-02-03
    • 2013-05-21
    • 1970-01-01
    • 2020-01-12
    • 2023-01-16
    相关资源
    最近更新 更多