Java LinkedList Object sortowanie, nie bardzo wiem jak uzyc

0

Witam,
Mam sobie LinkedList obiektów druzyna. Kazdy obiekt druzyna posiada prywatne pole: Liczba_zwyciestw.
Mam sobię parę druzyn na tej liscie i chce je posortować według liczby zwycięstw (na pierwszym miejscu druzyna z najwieksza Liczba_zwyciestw). Czytalem troche o Colections.sort i Comperator, ale proboję różnych kombinacji i nic nie wychodzi ;/ Pomoze ktos? Oczywiscie Klasa Druzyna posiada publiczna metoda getLiczbaZwyciestw ktora zwraca Liczba_zwyciestw typu Int.

1

np tak:

Collections.sort(lista_druzyn, new Comparator<druzyna>() {
         @Override
         public int compare(druzyna d1, druzyna d2) {
             return d2.getLiczbaZwyciestw() - d1.getLiczbaZwyciestw();
         }
     });
0

@katelx
Niestety twoje roziwazanie nie dziala. To co napisales znalazlem tez w Google, ale bardziej chodzi o mechanizm dzialania a nie o kod...

1

daj kod

0

@katelx
Ogolnie to ma byc jedna z opcji w większym programi (Obecnie mam koło 600 linijek). Chodzi o to, że w Menu mam opcję: "Tabela Wyników".
Jest to case 4, w którym wywołuję metodę z mojej klasy - bazy: Kopakabana.getTabelaWynikow(); która wrzuca Listę Druzyn do Tabela_w i teraz chciałbym posortować ładnie tą: Tabela_w, aby na pierwszym miejscu była Druzyna z największą liczbą Zwycięstw i tak dalej, a następnie ją wypisać.

case 4:{
                    LinkedList<Druzyna> Tabela_w = new LinkedList();
                    Tabela_w = Kopakabana.getTabelaWynikow();
                    //TUTAJ POTRZEBUJE POSORTOWAC
                    int i = 1;
                    System.out.println("TABELA WYNIKOW:");
                    for(Druzyna y : Tabela_w){
                    System.out.print("Miejsce nr: ");
                    System.out.print(i);
                    System.out.print(" ");
                    System.out.print(y.getNazwaDruzyny());
                    System.out.print(" ");
                    System.out.print("Punkty: ");
                    System.out.println(y.getLiczbaZwyciestw());
                    i++;
                    }
                    break;
                }
1
case 4:{
                    LinkedList<Druzyna> Tabela_w = Kopakabana.getTabelaWynikow();
                    Collections.sort(Tabela_w , new Comparator<Druzyna>() {
                             @Override
                             public int compare(Druzyna d1, Druzyna d2) {
                                 return d2.getLiczbaZwyciestw() - d1.getLiczbaZwyciestw();
                      }
                    });
                    int i = 1;
                    System.out.println("TABELA WYNIKOW:");
                    for(Druzyna y : Tabela_w){
                    System.out.print("Miejsce nr: ");
                    System.out.print(i);
                    System.out.print(" ");
                    System.out.print(y.getNazwaDruzyny());
                    System.out.print(" ");
                    System.out.print("Punkty: ");
                    System.out.println(y.getLiczbaZwyciestw());
                    i++;
                    }
                    break;
                }

i co, takie cos ci nie dziala? co jest nie tak jak sie spodziewales?

0

A jak chcialbym dodac jeszcze jeden warunek do tego, daloby rade? W jaki sposob to dodac? Tzw. Ze sortuje tak jak teraz na podstawie getLiczbaZwyciestw, ale rowniez na podstawie getPunktyPolfinal, da rade takie cos zrobic? :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1