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
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();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|