Witam
Nie rozumiem na jakiej zasadzie usuwany jest item z linked list w poniższym kodzie, szczególnie w miejscu else, gdzie Copmarision ==0. Jest to nadpisane metoda z Interfejsu.
@Override
public boolean removeItem(ListItem reitem){
if(reitem !=null){
System.out.println("Deleted item "+ reitem.getValue());
}
ListItem currentItem = this.root; //zaczynamy od głowy
while(currentItem !=null) {
int RemoveComparasion = currentItem.CompareTo(reitem);
if (RemoveComparasion == 0) {
if (currentItem == this.root){
this.root = currentItem.next(); //ustawiamy nowy korzeń (głowe)
} else {
currentItem.previous().setnext(currentItem.next());
if (currentItem.next() != null) {
currentItem.next().setPrevious(currentItem.previous());
}
}
return true;
}else if(RemoveComparasion<0){
currentItem=currentItem.next();
}else{
return false;
}
}
return false;
}
Interfejs
public interface NodeList {
ListItem getRoot();
boolean addItem(ListItem item);
boolean removeItem(ListItem item);
void traverse(ListItem root);
}