Witam. Pisze grę a problem polega na tym że nie mogę posortować imion graczy oraz ich punktów. Wykluczyłem powtarzanie się imion ale powtarzania się ilości punktów wykluczyć nie można. Sortowanie bąbelkowe plus to co wymyśliłem pozwala przyporządkować imiona do punktów lecz gdy pojawią się takie same wyniki wszyscy gracze dostają jednakowe imiona. Oto mój kod:
// Wczytanie wyników z pliku.txt
BufferedReader odczytGraczy = null;
odczytGraczy = new BufferedReader(new FileReader(listaGraczyOdczyt.filePath));
String linia = odczytGraczy.readLine();
i = 0;
while (linia != null) {
StringTokenizer token = new StringTokenizer(linia, " ");
imiePrzedSortowaniem[i] = token.nextToken();
pkt = token.nextToken();
punkty = Integer.parseInt(pkt);
sumaPunktow[i] = punkty;
wynikPrzedSortowaniem[i] = sumaPunktow[i];
i++;
liczbaGraczy++;
linia = odczytGraczy.readLine();
}
dlugoscTablicyPunktow = sumaPunktow.length - 1;
m = dlugoscTablicyPunktow - 1;
// Sortowanie punktów
for (i = 0; i < m; i++) {
for (j = i + 1; j < liczbaGraczy; j++) {
if (sumaPunktow[j] > sumaPunktow[i]) {
temp = sumaPunktow[i];
sumaPunktow[i] = sumaPunktow[j];
sumaPunktow[j] = temp;
}
}
}
// Przypisanie imion do punktów.
int k = 0;
for (i = 0; i < liczbaGraczy; i++) {
for (k = 0; k < liczbaGraczy; k++) {
if (wynikPrzedSortowaniem[k] == sumaPunktow[i]) {
// Jeżeli suma punktów przed sortowaniem == ilości punktów po sortowaniu to przypisz imię o tym samym indeksie
// to działało ale na różnych wynikach graczy, jednak na takich samych nie mam pojęcia co zrobić.
sumaPunktowString[i] = imiePrzedSortowaniem[k] + " " + sumaPunktow[i];
System.out.println(i + " imie " + imiePrzedSortowaniem[k] + " punkty " + sumaPunktow[i]);
}
}
Próbowałem powtarzające się wyniki usunąć metodą equals jednak wszystko wskazuje na to że usuwa ona Stringi o tej samej liczbie znaków a nie tej samej zawartości. Już od kilku dni czytam o różnych Hasmapach Comparatorach i Array ale nic z tego nie pasuje do mojego problemu bądź tego nie rozumiem. Od niedawna trudnię się Javą więc proszę o jak najprostszą odpowiedź bądź wskazówkę.