Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Ordinamento bean

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    88

    Ordinamento bean

    Ciao a tutti
    La mia domanda per molti di voi probabilmente sarà molto semplice.

    Ho un arraylist di oggetti che hanno un campo "nome".
    Vorrei ordinare questo arrayList di oggetti in base a questo campo.

    Grazie a chi mi aiuterà

  2. #2
    Supponendo che gli oggetti che vuoi ordinare siano istanze dalla classe MyObject e considerando objList un ArrayList di oggetti di tipo MyObject (List<MyObject> objList = ArrayList<MyObject>):

    codice:
    ...
    Collections.sort(objList, new MyObjectComparator());
    ...
    dove la classe MyObjectComparator è:

    codice:
    public class MyObjectComparator implements Comparator<MyObject> {
    
    	public int compare(MyObject o1, MyObject o2) {
    		if (o1.getNome().compareTo(o2.getNome()) < 0) {
    			return -1;
    		} else if (o1.getNome().compareTo(o2.getNome()) > 0) {
    			return 1;
    		}
    
    		return 0;
    	}
    
    }
    Dopo la chiamata al metodo sort() l'oggetto objList risulterà ordinato per l'attributo nome.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Altra soluzione, del tutto analoga, è quella di far implementare agli oggetti contenuti nell'ArrayList, l'interfaccia Comparable... in questo modo, non servirà passare un comparatore al metodo sort() che utilizzerà da solo il natural-ordering indotto dal Comparable.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    88
    siete stati chiarissimi e gentilissimi. grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.