Если вы хотите отсортировать по столбцу last , вы должны сравнить индекс last во втором измерении, который равен 2. Таким образом, вы должны сделать return (int)(a[2] -b[2]);
вместо return (int)(a[1] -b[1]);
.
Кстати, почему вы используете 3 индекса i
, j
и k
? Почему бы вам просто не использовать один, например i
Редактировать :
Переосмысливая сравнение, вы не должны использовать (int)(a[2] -b[2])
, а скорее Double.compare(a[2], b[2])
, как предложено @Prashant Bhate.
Причина в том, что если разница между двумя значениями меньше 1 или больше -1, приведение к int
приведет к 0, что означает, что оба значения равны. Пример: (int)(0.5 - 1.4) = (int)(-0.9) = 0
.