Scusa ma un conto è se vuoi/devi implementare tu un algoritmo di ordinamento (uno di quelli noti, chiaramente, es. BubbleSort ... difficilmente uno se ne inventa di nuovi ...).
Un altro conto è se ti basta sfruttare l'algoritmo di ordinamento già implementato nei sort() del framework, nel qual caso è solo sufficiente fornire il criterio di comparazione basato su Comparable o Comparator.
Se avessi una classe Persona (con String nome, String cognome, int annoNascita) e volessi un Comparator che ordina per anno nascita e a parità di anno per cognome e poi per nome, allora il Comparator sarebbe:
codice:public class PersonePerAnnoComparator implements Comparator<Persona> { public int compare(Persona p1, Persona p2) { int r = Integer.compare(p1.getAnnoNascita(), p2.getAnnoNascita()); if (r == 0) { r = p1.getCognome().compareTo(p2.getCognome()); if (r == 0) { r = p1.getNome().compareTo(p2.getNome()); } } return r; } }
Tutto qui.