for (Aircraft aircraft : landingQueue) {
if (aircraft.hasEmergency()) {
return aircraft;
}
}
for (Aircraft aircraft : landingQueue) {
if (aircraft.getFuelPercentRemaining() <= 20) {
return aircraft;
}
}
for (Aircraft aircraft : landingQueue) {
if (aircraft instanceof PassengerAircraft) {
return aircraft;
}
}
return landingQueue.get(0);
因此,我的程序会遍历队列中的飞机列表,并根据任务的重要性返回一架飞机。例如,它会首先检查landingQueue ArrayList,看看是否有飞机处于紧急状态,如果找不到飞机,那么它会检查燃油少于20的飞机,依此类推。有没有一种简单的方法可以减少for循环和if语句的重复?非常感谢
最佳答案
另一种方法可能是根据您的优先级标准对列表进行排序
public Aircraft returnOneBasedOnImportance(){
Comparator<Aircraft> byEmer = Comparator.comparing(a -> !a.hasEmergency());
Comparator<Aircraft> byFuel = Comparator.comparing(a -> !(a.getFuelPercentRemaining() <= 20));
Comparator<Aircraft> byType = Comparator.comparing(a -> !(a instanceof PassengerAircraft));
return landingQueue.stream()
.sorted(byEmer.thenComparing(byFuel).thenComparing(byType))
.findFirst().get();
}
关于java - 在java中使用For循环减少代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67267176/