class Kaningaard { private Kanin[] kaniner = new Kanin[2]; //sjekker om listen "kaniner" er full. Vi itererer gjennom indeksene i listen, og hvis en av //indeksene har verdien null, s? returnerer vi false. public boolean full() { for (int i = 0; i < kaniner.length; i++){ if (kaniner[i] == null){ return false; } } return true; } //Samme konsept som metoden full(). hvis en av indeksene ikke inneholder null, s? er ikke listen tom, //og da kan vi returnere false. public boolean tom() { for (int i = 0; i < kaniner.length; i++){ if (kaniner[i] != null){ return false; } } return true; } //Vi itererer gjennom listen. F?rst sjekker vi om den n?v?rende indeksen faktisk inneholder et //Kanin-objekt. Alts? at indeksen ikke inneholder null. Hvis indeksen ikke inneholder null, s? //inneholder den et Kanin-objekt, og da kan vi kalle metoden hentNavn(). Hvis vi hadde fors?kt ? //kalle metoden hentNavn() p? en indeks som inneholdt null, ville vi f?tt en nullPointerException. //S? sjekker vi om returverdien til hentNavn()-metoden er likt parameteren "navn" med equals()-metoden. //dersom denne er true, alts? navnene er like, s? kan vi returnere Kaninobjektet i gjeldende indeks. //Dersom vi har g?tt igjennom hele for-l?kken uten ? finne en kanin med samme navn, s? returnerer //vi null. public Kanin finnEn(String navn) { for (int i = 0; i < kaniner.length; i++){ if (kaniner[i] != null){ if (kaniner[i].hentNavn().equals(navn)) { return kaniner[i]; } } } return null; } //F?rst kaller vi p? metoden finnEn() med kanin-objektets navn som argument, og lagrer returverdien //i Kanin-referansen som heter "denne". "denne" er n? enten null eller inneholder et Kanin-objekt. //S? sjekker vi om buret er tomt, eller om "denne" ikke er null. (Hvis "denne" ikke er null s? finnes //det en Kanin med samme navn som den vi pr?ver ? legge inn. I begge tilfeller ?nsker vi ikke //? legge inn Kanin-objektet. Vi skriver derfor en relevant feilmelding. //Dersom ingen av de andre if-conditionsene ikke inntreffer, s? vil vi sette inn Kanin-objektet. //da leter vi etter f?rste ledige indeks, og plasserer kaninen der. Vi m? huske ? avbryte metoden //p? dette punktet for ? ikke sette inn samme kanin p? alle ledige plasser. vi bruker da "return". public void settInn(Kanin kanin) { Kanin denne = finnEn(kanin.hentNavn()); if (full()){ System.out.println("BURET ER FULLT"); } else if (denne != null){ System.out.println("Kaninen finnes allerede!"); } else { for (int i = 0; i < kaniner.length; i++){ if (kaniner[i] == null){ kaniner[i] = kanin; System.out.println("Kaninen " + kanin.hentNavn() + " er satt inn!"); return; } } } } //Vi sjekker f?rst om kaninen vi ?nsker ? fjerne faktisk finnes. Hvis "denne" er null kan vi avslutte //metoden. Dette steget er ikke strengt tatt n?dvendig. //Vi itererer gjennom alle indeksene i listen, og kaller p? metoden hentNavn() p? alle elementer som //ikke er null, alts? Kanin-objekter. returverdien av metodekallet, som er en String, kan vi igjen //sammenligne med parameteret "navn" ved hjelp av equals()-metoden. Dersom vi har truffet p? //kanin-objektet vi ?nsker ? fjerne, s? setter vi gjeldende indeks til null. Da har vi fjernet //kanin-objektet fra listen v?r. public void fjern(String navn) { Kanin denne = finnEn(navn); if (denne == null){ System.out.println("Kaninen " +navn+ " finnes ikke i listen!"); return; } for (int i = 0; i < kaniner.length; i++){ if (kaniner[i] != null){ if (kaniner[i].hentNavn().equals(navn)){ kaniner[i] = null; System.out.println("Kaninen " + navn + " er fjernet fra listen!"); return; } } } } }