package com.codepoetics.protonpack.comparators;
import com.codepoetics.protonpack.StreamUtils;
import java.util.Comparator;
import java.util.List;
public final class Comparators {
private Comparators() {
}
public static <T> Comparator<? super List<T>> toListComparator(Comparator<? super T> itemComparator) {
return (o1, o2) -> StreamUtils.zip(o1.stream(), o2.stream(), itemComparator::compare)
.filter(c -> c != 0)
.findFirst()
.orElseGet(() -> Integer.compare(o1.size(), o2.size()));
}
}