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 16. mars 2023 11:18
- Sist endret 16. mars 2023 11:18