Вместо того, чтобы делать это с использованием отключенных наборов данных, что является сложным и подверженным ошибкам способом, вы должны сделать это, используя концепцию OOP (объектно-ориентированное программирование). Ниже приведен пример, который вы можете расширить / настроить в соответствии с вашими требованиями:
import java.util.Arrays;
import java.util.Comparator;
class Athlete {
private String name;
private double fastestTime;
public Athlete(String name, double fastestTime) {
this.name = name;
this.fastestTime = fastestTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getFastestTime() {
return fastestTime;
}
public void setFastestTime(double fastestTime) {
this.fastestTime = fastestTime;
}
@Override
public String toString() {
return "Athlete [name=" + name + ", fastestTime=" + fastestTime + "]";
}
}
public class Main {
public static void main(String[] args) {
Athlete[] athletes = new Athlete[3];
athletes[0] = new Athlete("Richard Thompson", 9.82);
athletes[1] = new Athlete("Nesta Carter", 9.78);
athletes[2] = new Athlete("Usain Bolt", 9.92);
System.out.println("Before sorting:");
for (Athlete athlete : athletes) {
System.out.println(athlete);
}
// Sort the array by fastestTime
Arrays.sort(athletes, Comparator.comparing(Athlete::getFastestTime));
System.out.println("Before sorting:");
for (Athlete athlete : athletes) {
System.out.println(athlete);
}
}
}
Выход:
Before sorting:
Athlete [name=Richard Thompson, fastestTime=9.82]
Athlete [name=Nesta Carter, fastestTime=9.78]
Athlete [name=Usain Bolt, fastestTime=9.92]
Before sorting:
Athlete [name=Nesta Carter, fastestTime=9.78]
Athlete [name=Richard Thompson, fastestTime=9.82]
Athlete [name=Usain Bolt, fastestTime=9.92]