Ordenando ArrayList

Ya que estoy empezando con JAVA, tengo curiosidad por saber cuál es la mejor opción para implementar la clasificación en JAVA (para ArrayLists). A continuación presento mi código PHP.

public int cmp($a, $b) {
    if ( $a[0] < $b[0] ) return 1;
    else if ( $a[0] > $b[0] ) return -1;
    else if ( $a[1] < $b[1] ) return 1;
    else if ( $a[1] > $b[1] ) return -1;
    else return 0;
}

$selected = array();

for ($i=0; $i<$len; $i++) {
    $rank = getRank();
    $cub = getCub_len();
    $selected[] = array($rank,$cub);
}

uasort($selected, 'cmp')

Bueno, escribí el siguiente código en Java:

ArrayList<ArrayList<Double>> selected = new ArrayList<ArrayList<Double>>();
ArrayList<Double> rank = new ArrayList<Double>();
ArrayList<Double> cub = new ArrayList<Double>();

for (int i=0; i<len; i++) {
 rank.add(getRank(i));
 cub.add(getCub(i));
}

selected.add(0,rank);
selected.add(1,cub);

Como ordenarselected en la forma adecuada (de manera similar a la función de PHPcmp)?

Respuestas a la pregunta(6)

Su respuesta a la pregunta