Oppgave uke 8

 

a)

Gitt følgende grensesnitt, implementer koden til “settInn”. Den finner en ledig plass i arrayet og setter inn elementet, hvis det går fint (og det er en ledig plass) så returneres true, hvis det er fullt returneres false.

b)

Implementer “fjernFraIndex(int n)”. Den fjerner et element fra en gyldig indeks. Dersom indeks n ikke finnes eller plassen allerede er tom returneres false, ellers settes plassen til null og true returneres. 

import java.util.Iterator;


class VaarArray<T> implements Iterable<T> {

T [] arr;


public VaarArray(int strl) {

        arr = (T[]) new Object[strl];

}


//Finner ledig plass og setter inn. Hvis det er plass returneres true,

//hvis det er fullt returneres false

public boolean settInn(T elem);


//Returnerer true dersom det var mulig å fjerne, false ellers.

public boolean fjernFraIndex(int n);

       public Iterator<T> iterator();


       private class ArrayIterator implements Iterator<T>{

     //variabler..?


         public boolean hasNext();

         public T next();

}

c)

Implementer iterator()-metoden, samt den indre klassen ArrayIterator. Den må ha en variable som holder styr på hvor langt vi har kommet i itereringen. 

hasNext metoden skal sjekke om det finnes flere elementer i listen, returnerer true hvis det finnes flere, false ellers.

next() henter ut det neste elementet i listen, og oppdaterer da variablen som holder styr på hvor langt vi har kommet i itereringen. 

import java.util.Iterator;


class VaarArray<T> implements Iterable<T> {

T [] arr;


public VaarArray(int strl) {

        arr = (T[]) new Object[strl];

}


//Finner ledig plass og setter inn. Hvis det er plass returneres true,

//hvis det er fullt returneres false

public boolean settInn(T elem){

        for(int i = 0; i < arr.length; i++){

               if (arr[i] == null) {

                   arr[i] = elem;

                   return true;

                }

        }

        return false;

}


//Returnerer true dersom det var mulig å fjerne, false ellers.

public boolean fjernFraIndex(int n){

        //Hvis ugyldig index

        if(arr.length <= n || n < 0){

                return false;

        }

        //Hvis plassen er tom

        if (arr[n] == null){

                return false;

        }

        arr[n] = null;

        return true;

}


public Iterator<T> iterator(){

        return new ArrayIterator();

}


    private class ArrayIterator implements Iterator<T>{

    int pos = 0;


    public boolean hasNext(){

            for(int i = pos; i < arr.length; i++){

                if(arr[i] != null) {

                       return true;

                }

            }

            return false;

     }


     public T next(){

            for(int i = pos; i < arr.length; i++){

                if(arr[i] != null) {

                    T returverdi = arr[i];

                    pos ++;

                    return returverdi;

                }

            }

            return null;
     }
     }
}

 

Publisert 20. mars 2023 11:43 - Sist endret 20. mars 2023 11:43