Hallo,
Das hier habe ich alles gegeben und noch weitere Methoden, die jedoch irrelevant sind. Meine Aufgabe ist es, an der mit TODO markierten Stelle, die Methode zu vervollständigen. Ich muss ein neues Element e an Position index einfügen. Ich darf nur Änderungen an der Methode vornehmen und keine weiteren Variablen usw. einführen. Ich muss zugeben, ich bin kein großer Fan von verketteten Listen. Wie das mit Arrays klappen würde würde ich verstehen.
Kann mir jemand ein bisschen helfen? Ich stehe grad auf dem Schlauch. Ich hab das Gefühl das ich irgendwas mit der Methode get machen muss oder?
Java:
public class VerketteteListe<T> implements List<T> {
protected T element; //Referenz auf aktuelles Listenelement
protected VerketteteListe<T> rest; //Rest der Liste, oder null falls das aktuelle Element das letzte ist.
public VerketteteListe(T element) {
if (element == null) throw new NullPointerException();
this.element = element;
}
public VerketteteListe(T... elemente) {
if (elemente == null) throw new NullPointerException();
if (elemente.length == 0) throw new IllegalArgumentException();
for (T t : elemente) {
if (element == null) {
element = t;
}
else {
add(t);
}
}
}
@Override
public boolean add(T e) {
if (e == null) throw new NullPointerException();
if (rest == null) {
rest = new VerketteteListe<T>(e);
return true;
}
else {
return rest.add(e);
}
}
@Override
public void add(int index, T e) {
if (index == 0) {
throw new UnsupportedOperationException(
"Kann nicht als erstes Element einfuegen.");
}
// TODO
}
@Override
public void clear() {
if (rest != null) {
rest.clear();
}
rest = null;
element = null;
}
@Override
public T get(int index) {
if (index < 0) throw new IndexOutOfBoundsException();
if (index == 0) return element;
if (rest == null) throw new IndexOutOfBoundsException();
return rest.get(index-1);
}
@Override
public int size() {
if (rest == null) return 1;
else return rest.size() + 1;
}
Das hier habe ich alles gegeben und noch weitere Methoden, die jedoch irrelevant sind. Meine Aufgabe ist es, an der mit TODO markierten Stelle, die Methode zu vervollständigen. Ich muss ein neues Element e an Position index einfügen. Ich darf nur Änderungen an der Methode vornehmen und keine weiteren Variablen usw. einführen. Ich muss zugeben, ich bin kein großer Fan von verketteten Listen. Wie das mit Arrays klappen würde würde ich verstehen.
Kann mir jemand ein bisschen helfen? Ich stehe grad auf dem Schlauch. Ich hab das Gefühl das ich irgendwas mit der Methode get machen muss oder?