Skip to content
Snippets Groups Projects
Commit 31eaa758 authored by Andreas Lundquist's avatar Andreas Lundquist
Browse files

Changed project structure

parent 1fafabff
No related branches found
No related tags found
No related merge requests found
......@@ -6,14 +6,17 @@ import java.util.Iterator;
public class Enumerable<T> implements Iterable<T> {
private Iterator<T> iterator;
private Collection<T> collection;
public Enumerable(Collection<T> collection) {
this.iterator = collection.iterator();
this.collection = collection;
}
Enumerable<T> where(IPredicate<T> predicate) {
Iterator<T> oldIterator = iterator;
this.iterator = new Iterator<T>() {
Enumerable<T> enumerable = new Enumerable<>(this.collection);
Iterator<T> oldIterator = enumerable.iterator();
enumerable.iterator = new Iterator<T>() {
@Override
public boolean hasNext() {
......@@ -26,10 +29,13 @@ public class Enumerable<T> implements Iterable<T> {
while (oldIterator.hasNext() && !predicate.accept(item)) {
item = oldIterator.next();
}
return item;
if (predicate.accept(item)) {
return item;
}
return null;
}
};
return this;
return enumerable;
}
@Override
......@@ -40,8 +46,9 @@ public class Enumerable<T> implements Iterable<T> {
void forEach(IAction<T> action) {
while (iterator.hasNext()) {
T t = (T) iterator.next();
action.perform(t);
if (t != null) {
action.perform(t);
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment