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à
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à
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>):
dove la classe MyObjectComparator è:codice:... Collections.sort(objList, new MyObjectComparator()); ...
Dopo la chiamata al metodo sort() l'oggetto objList risulterà ordinato per l'attributo nome.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; } }
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
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
siete stati chiarissimi e gentilissimi. grazie mille