import java.util.Iterator; public class KullArray extends Kull{ private Hund[] hundene = new Hund[60]; public KullArray(Hund mor, Hund far){ super(mor, far); } public void settInn(Hund h){ int sek = h.minFodselstid.sek; h.neste = hundene[sek]; hundene[sek] = h; } public void skrivUtAlle(){ for(int i = 0; i < 60; i++){ Hund h = hundene[i]; while(h != null){ System.out.println(h.navn); h = h.neste; } } } //Alternativ losning public void skrivUtAlle2(){ for(Hund h : this){ System.out.println(h.navn); } } @Override public Iterator iterator(){ return new HundeIterator(); } private class HundeIterator implements Iterator{ private int pos; private Hund denne; private HundeIterator(){ pos = 0; denne = null; while(true){//finne forste hund som skal være "denne" if (pos >= 60) break; if(hundene[pos] != null){ denne = hundene[pos]; break; } pos++; } } @Override public boolean hasNext(){ return denne != null; } @Override public Hund next(){ Hund svar = denne; if(denne.neste != null){ denne = denne.neste; } else{ //finne neste i listen - den kan vaere pa en annen indeks pos++; while(pos < 60 && hundene[pos] == null) pos++; if(pos < 60) denne = hundene[pos]; else denne = null; } return svar; } } }