首页 > 解决方案 > 找到了一些使用 Arrays.sort() 进行排序的代码

问题描述

所以我试图制作一个使用Java中的遗传算法解决的java程序。我在对染色体的适应度值进行排序时遇到了麻烦,然后我发现这段代码与我的其他代码完美配合:

public void sortChromosomeByFitness(){
    Arrays.sort(chrom,(chrom1,chrom2) -> {

        int flag = 0;
        if(chrom1.getFitness() > chrom2.getFitness())
            flag=-1;
        else if (chrom1.getFitness() < chrom2.getFitness())
            flag=1;
        return flag;

    });
}

谁能帮我解释一下代码的含义?特别是 Arrays.sort(chrom,(chrom1,chrom2) -> ,标志的用途是什么?谢谢

标签: javaarrayssorting

解决方案


它是接口的lambda表达式Comparable。这flag只是该compareTo方法通常返回的值。

Comparator.comparing(Chromosome::getFitness)如果类被调用,它甚至可以被替换Chromosome


推荐阅读