java - 找到了一些使用 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) -> ,标志的用途是什么?谢谢
解决方案
它是接口的lambda表达式Comparable
。这flag
只是该compareTo
方法通常返回的值。
Comparator.comparing(Chromosome::getFitness)
如果类被调用,它甚至可以被替换Chromosome
。
推荐阅读
- javascript - 创建喜欢不喜欢的功能喜欢instagram
- c++ - 我可以使用没有 dso 问题的库进行编译吗?
- node.js - 自动重新发送图像
- r - 为什么这两个矩阵不能正确连接
- latex - 在乳胶文件中使用 Academic.google.com 参考
- python - pyspark递归行链接转换为scala
- django - 我可以使用 django 小部件 DateInput 来限制日期的可能性吗?2020 年 1 月 1 日至 2023 年 12 月 31 日之间
- react-native - Undefined 不是评估 RNGooglesignin.dark 的对象
- sql - 使用派生可插入的浮点数
- azure - 如何在 Azure 中使用 Webjob 调用 WebApp 中的方法