import java.util.Arrays; class Person implements Comparable { String fornavn; String etternavn; int alder; public Person(String fornavn, String etternavn, int alder) { this.fornavn = fornavn; this.etternavn = etternavn; this.alder = alder; } @Override public String toString() { return etternavn + ", " + fornavn; } public int hentAlder() { return alder; } public int compareTo(Person annen) { //skal sjekke om en verdi fra this er st?rre eller mindre enn hos annenNode //hvis this > annenNode - return et tall over 0 //hvis this < annenNode - return et tall under 0 //hvis this == annenNode - return 0 //ny smart implementasjon. Bruker bl.a compareTo() til Strings, god objektorientering if (this.alder - annen.hentAlder() != 0) { return this.alder - annen.hentAlder(); } return toString().compareTo( annen.toString() ); //gammel implementasjon // if (alder > annen.hentAlder()) { // return 1; // } else if (alder < annen.hentAlder()) { // return -1; // } else { // if (toString().compareTo( annen.toString() ) > 0 ) { // return 1; // } else if (toString().compareTo( annen.toString() ) < 0 ) { // return -1; // } else { // return 0; // } } } class Testprogram { public static void main(String[] args) { Person[] personer = { new Person("Andreas", "Hurthe", 25), new Person("Kristine", "Henriksen", 30), new Person("Henrik", "Golsen", 25), new Person("Sigvart", "Dagsland", 29) }; System.out.println("c".compareTo("a")); Arrays.sort(personer); for (Person p : personer) { System.out.println(p); } } }