Select Git revision
TeachingUnitResult.java
-
LABOUREL Arnaud authoredLABOUREL Arnaud authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Iterations.java 3.18 KiB
package fr.univamu.helpers;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.function.Function;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
public class Iterations {
public static Iterator<Integer> range(int fromIncluded, int toExcluded) {
return new Iterator<Integer>() {
private int current;
@Override
public boolean hasNext() {
return current < toExcluded;
}
@Override
public Integer next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
return current++;
}
};
}
public static <S,T> Iterator<T> map(Iterator<S> iterator, Function<S,T> f) {
return new Iterator<T>() {
@Override
public boolean hasNext() {
return iterator.hasNext();
}
@Override
public T next() {
return f.apply(iterator.next());
}
};
}
public static <T> Stream<T> toStream(Iterable<T> iterable) {
return StreamSupport.stream(iterable.spliterator(), false);
}
public static <T> Iterable<T> empty() {
return () -> new Iterator<T>() {
@Override
public boolean hasNext() {
return false;
}
@Override
public T next() {
throw new NoSuchElementException();
}
};
}
public static <T> Iterable<T> single(T element) {
return () -> new Iterator<T> () {
private boolean hasNext = true;
@Override
public boolean hasNext() {