我正在编写一个优化运输系统的程序。 我有一个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;
}
答案 0 :(得分:0)
您可以按小时属性分组以获得这样的地图:
Map<Integer, List<Passenger>> hourToPassengersMap = passengers.stream()
.collect(Collectors.groupingBy(Passenger::getHour));
使用方式:
List<Passenger> hour3Passengers = hourToPassengersMap.get(3);