Вы сортируете отдельный массив, чтобы результат не мог быть отображен между именем и рангом.
В Java обычный способ состоит в том, чтобы абстрагировать ваши данные в объект и работать с ними:
Объявите свой модельный класс:
public YourModel {
private String name;
private double score;
public Rank(String name, double score) {
this.name = name;
this.score = score;
}
// you create your getters/ setters
}
Добавить данные в ваш массив:
YourModel[] models = new YourModel[4];
models[0] = new YourModel("a1", 6.75D);
... добавить другие модели ...
Сортируйте массивы:
Arrays.sort(models, Comparator.comparing(YourModel::getScore));
После этого шага ваш массив будет отсортирован:
[{"a2", 9.0} ....]
И вы можете распечатать свой результат:
for(int i=0;i<4;i++)
System.out.println(models[i].getName() + " rank = " + (i+1));
}