Ordenar un valor doble de un objeto dentro de una arrayList

Estoy tratando de ordenar mi cromosoma de clase personalizado por el valor de su atributo de puntuación, que es un doble. Estos cromosomas se almacenan dentro de un ArrayList. Sé que tengo que usar un comparador, pero he leído tantas opiniones diferentes en línea en la última hora que estoy completamente confundido.

Adjunto está mi código, si alguien pudiera apuntarme en la dirección correcta sería muy apreciado.

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;
    }
}

No sé si esto marca una diferencia, pero el puntaje solo puede ser un doble entre 0.0 y 1.0 inclusive.

Respuestas a la pregunta(5)

Su respuesta a la pregunta