Как разделить ArrayList по атрибуту объекта в Java? - PullRequest
0 голосов
/ 25 марта 2019

Я пишу программу для оптимизации транспортной системы. У меня есть «пассажиры» ArrayList 65 000 пассажиров, и у каждого пассажира есть атрибут часа (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;                 

}

1 Ответ

0 голосов
/ 25 марта 2019

Вы можете сгруппировать по атрибуту часа, чтобы получить карту, подобную этой:

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

Используйте это как:

List<Passenger> hour3Passengers = hourToPassengersMap.get(3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...