qualcuno saprebbe indicarmi cosa devo usare per ordinare un vettore di oggetti secondo l'ordine di un suo campo di tipo intero.
qualcuno saprebbe indicarmi cosa devo usare per ordinare un vettore di oggetti secondo l'ordine di un suo campo di tipo intero.
Se il vettore e' un vector o comunque una struttura dati analoga puoi usare Collections.sort(vettore);
e fare implementare comparable ai tuoi oggettini.
Ci sono parecchi thread passati che discutono argomenti analoghi.
OK faccio una ricerca, però spero di trovare qlc esempio pratico perchè teoricamente ne avevo già un'idea.
Originariamente inviato da uranya
OK faccio una ricerca, però spero di trovare qlc esempio pratico perchè teoricamente ne avevo già un'idea.compareTo compara prima il cognome e, se uguale, poi il nome.codice:class Persona implements Comparable<Persona> { private String nome; private String cognome; public Persona (String nome, String cognome) { this.nome = nome; this.cognome = cognome; } public String getNome () { return nome; } public String getCognome () { return cognome; } public int compareTo (Persona p) { int r = getCognome ().compareTo (p.getCognome ()); return r != 0 ? r : getNome ().compareTo (p.getNome ()); } }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
scusa l'ignoranza ma dagli esempi che ho visto non sono riuscita a capirci granchè..![]()
i miei oggetti hanno un campo long "tempoImpiegato". Io vorrei implementare un metodo
public Oggetto[] ordina(Oggetto[] oggetti)
che avendo come parametro l'array di oggetti non ordinati mi restituisce l'array ordinato, si può fare?
Devi solo stabilire se usare un Comparable o un Comparator.Originariamente inviato da uranya
i miei oggetti hanno un campo long "tempoImpiegato".
Comparable va implementato nella classe dell'oggetto e serve per stabilire quello che si chiama "natural order" (l'ordine naturale dell'oggetto). Pertanto ne puoi avere 1 solo.
Puoi invece creare N altre classi il cui unico scopo è quello di implementare Comparator per fare un qualunque altro tipo di ordine.
Lo fa già Arrays.sort(), vedi documentazione.Originariamente inviato da uranya
Io vorrei implementare un metodo
public Oggetto[] ordina(Oggetto[] oggetti)![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
scusa ma di teoria in merito ne sto leggendo tanta... ti ho detto cosa vorrei fare.
Voglio ordinare i miei oggetti secondo uno dei campi che è di tipo long (quindi un tipo primitivo). Il problema è che non ho capito praticamente come devo fare.
Ok, ammettiamo che i tuoi oggetti vadano ordinati in ordine ascendente secondo il valore di quel campo long. E supponiamo che questo sia il "natural order" del tuo oggetto, quindi puoi implementare Comparable.Originariamente inviato da uranya
scusa ma di teoria in merito ne sto leggendo tanta... ti ho detto cosa vorrei fare.
Voglio ordinare i miei oggetti secondo uno dei campi che è di tipo long (quindi un tipo primitivo). Il problema è che non ho capito praticamente come devo fare.
codice:public class TuaClasse implements Comparable<TuaClasse> { private long tempoImpiegato; // ..... public int compareTo (TuaClasse obj) { return tempoImpiegato > obj.tempoImpiegato ? +1 : tempoImpiegato < obj.tempoImpiegato ? -1 : 0; } }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
raga scusate ma ho trovato una soluzione forse banale, ma che mi è servita allo scopo.
Ho usato una lista aggiungendo gli elementi ma mano che raggiungevano un determinato scopo, e la lista è risultata così, direttamente ordinata.
So che ho aggirato il problema ma tutte ste chiacchiere sulle collection mi hanno fatto venire il mal di testa...
purtroppo sto un po a zero con java e ho bisogno di esempi pratici, partendo da un problema semplice e vedendo la sua soluzione con un codice ben scritto.
Perciò grazie della collaborazione.... magari ci vorrebbe un bel tutorial passo passo...beh forse è chiedere troppo!!
Ciao
Alla prox