java - 在java中使用For循环减少代码重复

标签 java for-loop duplicates

    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/

相关文章:

java - 为什么我的程序不输出数字

java - Eclipse 数据工具项目 - SQL 查询解析器

优化嵌套循环的算法

java - Eclemma:for 循环中缺少分支——这是什么意思?

mysql - 查询选择记录忽略重复项

python-2.7 - Pandas 掉落重复;值倒序

java - 为什么 "\400"不是编译时错误?

java - Android 中的模糊 svg 图像

java - 在带有 CrossOrigin 注释的 Java 中或在 Spring-Config XML 中使用 Spring Properties

javascript - 如何减少重复的javascript函数?