我正在尝试按照得分属性的值来对我的自定义类染色体进行排序.这些染色体存储在ArrayList中.我知道我必须使用比较器,但我在最后一小时在线阅读了很多不同的意见,我完全感到困惑.
附上我的代码,如果有人能指出我正确的方向,我将不胜感激.
public class Chromosome
{
public Gene[] genes;
public double score;
public Chromosome(int l)
{
genes = new Gene[l];
}
public int getLength()
{
return genes.length;
}
public void printChromo()
{
for(int i=0;i<this.genes.length;i++)
{
System.out.println(""+this.genes[i].teacher+","+
this.genes[i].lecture+","+
this.genes[i].room+","+
this.genes[i].time+"");
}
}
public void setScore(double score)
{
this.score=score;
}
public double getScore()
{
return this.score;
}
}
Run Code Online (Sandbox Code Playgroud)
不知道这有什么不同,但得分只能是0.0到1.0之间的两倍
在Java中遇到浮点数和长期问题
float f = 0.100f;
f = 3/180;
Run Code Online (Sandbox Code Playgroud)
在我尝试用对象及其属性做这样的事情的那一刻,但即使是这个最简单的形式,我的程序返回0.0.
我用Longs尝试了这个,但结果仍然相同.这是漫长的一天,也许这很简单,但我在砖墙上.