Testat Sammlung
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
1.8 KiB

package solution;
//2017_OOP_90.jar importieren die von Bayer in der Aufgabenstellung zur Verfügung gestellt wird.
//import testat.*;
public class SimpleLinkedList<E> extends AbstractSimpleList<E> {
Node<E> firstNode;
int size;
public SimpleLinkedList() {
firstNode = null;
size = 0;
}
@Override
public int size() {
return size;
}
@Override
public boolean add(E e) {
if (e == null) {
return false;
} else {
Node<E> newNode = new Node<>(e);
if (firstNode == null) {
firstNode = newNode;
} else {
Node<E> currentNode = firstNode;
while (currentNode != null) {
currentNode = currentNode.getSuccessor();
}
currentNode.setSuccessor(newNode);
currentNode.setPredecessor(currentNode);
}
}
size++;
return true;
}
@Override
public boolean remove(Object o) {
if(o == null) {
return false;
}
Node<E> aktuellerKnoten = ersteKnoten;
while(aktuellerKnoten != null) {
aktuellerKnoten = aktuellerKnoten.getSuccessor();
}
if(o.equals(aktuellerKnoten)) {
aktuellerKnoten.setPayload(null);
size--;
aktuellerKnoten = aktuellerKnoten.getPredecessor();
return true;
}
return false;
}
@Override
public boolean contains(Object o) {
if(o == null) {
return false;
}
Node<E> aktuellerKnoten = ersteKnoten;
while(aktuellerKnoten != null) {
aktuellerKnoten = aktuellerKnoten.getSuccessor();
}
if(o.equals(aktuellerKnoten)) {
return true;
}
return false;
}
@Override
public void forAll(ICommand<E> command) {
if(command != null) {
Node<E> aktuellerKnoten = ersteKnoten;
while(aktuellerKnoten != null) {
command.execute(aktuellerKnoten.getPayload());
aktuellerKnoten = aktuellerKnoten.getSuccessor();
}
}
}
}