Ich habe eine sehr allgemeine Verständnisfrage. Ich habe eine ganz normale Liste und habe das Einfügen eines neuen Elements programmiert und weiß auch das es stimmt. Aber nun die Frage: Wieso muss ich i=1 setzen, um einem NullPointer zu entgehen? Bei einem getString, also der Ausgabe von einem String an einem Index beginnt man ja mit i=0 (siehe zweiter Code). Wo ist denn der Unterschied? Überspringt man dann nicht so gesehen sogar einen Index durch das i=1?
Java:
public void insert(String string, int index)
{
ListenElement current = first;
int i = 1;
while (i < index && current != null) {
current = current.getNext();
i++;
}
ListenElement neu = new ListenElement();
neu.setString(string);
if (index == 0) {
neu.setNext(first);
first = neu;
neu.setPrev(first);
} else if (current.getNext() == null) {
append(string);
} else {
neu.setNext(current.getNext());
neu.getNext().setPrev(neu);
current.setNext(neu);
neu.setPrev(current);
}
}
Java:
public String get(int index)
{
ListenElement current = first;
if (index == 0) {
return first.getString();
}
int i = 0;
while (i < index && current != null) {
current = current.getNext();
i++;
}
return current.getString();
}