カスタムクラスの染色体を、doubleであるスコア属性の値で並べ替えようとしています。これらの染色体はArrayList内に保存されます。私はコンパレーターを使わなければならないことを知っていますが、私はこの1時間にオンラインで非常に多くの異なる意見を読んだので、私は完全に混乱しています。
添付されているのは私のコードです。誰かが私を正しい方向に向けることができれば、私は大いに感謝されます。
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;
}
}
これが違いを生むかどうかはわかりませんが、スコアは0.0から1.0までの2倍になります。