import java.util.Iterator; import java.util.LinkedList; import java.util.ArrayList; import java.util.Collections; class Henkilo implements Comparable { private String etunimi; private String sukunimi; private int ika; public Henkilo(String en, String sn, int i) { etunimi=en;sukunimi=sn; ika=i; } public String toString() { return etunimi + " " + sukunimi + " " + ika; } /** CallBack-rutiini, joka palauttaa -1 jos edellinen < seuraava, 0, jos edellinen==seuraava ja 1 jos edellinen > seuraava. */ public int compareTo(Object seuraava) { String b_sukunimi = ((Henkilo)seuraava).sukunimi; String b_etunimi = ((Henkilo)seuraava).etunimi; int suku_vert = sukunimi.compareTo(b_sukunimi); if (suku_vert == 0) return etunimi.compareTo(b_etunimi); else return suku_vert; } } public class ArrayListTesti { public static void main(String args[]) { Henkilo Henkilo1 = new Henkilo("Mikki", "Hiiri", 45); Henkilo Henkilo2 = new Henkilo("Minni", "Hiiri", 39); Henkilo Henkilo3 = new Henkilo("Aku", "Ankka", 50); Henkilo Henkilo4 = new Henkilo("Iines", "Ankka", 40); Henkilo Henkilo5 = new Henkilo("Hessu", "Hopo", 48); ArrayList henkilot = new ArrayList(); henkilot.add(Henkilo1); henkilot.add(Henkilo2); henkilot.add(Henkilo3); henkilot.add(Henkilo4); henkilot.add(Henkilo5); // henkilot.remove(0); Collections.sort(henkilot, Collections.reverseOrder()); Iterator iter = henkilot.iterator(); while (iter.hasNext()) System.out.println((Henkilo)iter.next()); } }