FList.without

This commit is contained in:
peter
2011-11-09 16:02:31 +01:00
parent cb390dae09
commit 0493b10504

View File

@@ -59,6 +59,26 @@ public class FList<E> extends AbstractList<E> {
return new FList<E>(elem, this);
}
public FList<E> without(E elem) {
FList<E> front = emptyList();
FList<E> current = this;
while (!current.isEmpty()) {
if (current.myHead.equals(elem)) {
FList<E> result = current.myTail;
while (!front.isEmpty()) {
result = result.prepend(front.myHead);
front = front.myTail;
}
return result;
}
front = front.prepend(current.myHead);
current = current.myTail;
}
return this;
}
public FList<E> getTail() {
return myTail;
}