Loading:

Promocja Helion.pl

Sortowanie liczb w List, ArrayList, Collection w JAVA

Skrypt pokazuje jak posortować listę ( w tym przypadku listę obiektów z właściwością 'cena') według  porządku malejącego. (od największego do najmniejeszego). List<MojObiekt>. Przykład używa comparator'a oraz Collection.sort metody dla listy.



Napisz Artykuł

Listing

//Główny kod, przyjmijmy że listaObiektów ma 3 obiekty z właściwościami 'cena' zadeklarowanymi

MojObiekt[] listaObiektowArray = new MojObiekt[listaObiektow.size()];
//konwertowanie do Array
listaObiektow.toArray(listaObiektowArray);
//tworzenie nowego comparatora
Comparator<MojObiekt> nazwaComparator = new CenaComparator();
//akcja sortowania
Arrays.sort(listaObiektowArray , nazwaComparator);
//konwertujemy spowrotem na Listę obiektów
List<MojObiekt> posortowanaLista = Arrays.asList(listaObiektowArray );


//kod dla comparatora
import java.util.Comparator;

public class CenaComparator implements Comparator<MojObiekt>{

    public int compare(MojObiekt ao1, MojObiekt ao2) {
       
        if (ao1.getCena() == null || ao2.getCena() == null){
            return 0;
        }
        if (ao1.getCena() > ao2.getCena()){
            return -1;
        }
        else if  (ao1.getCena() == ao2.getCena()){    
            return 0;
        }
        else {
            return 1;
        }
    }
}

 


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=6004

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38323
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors