Array then.

This commit is contained in:
asofold 2014-07-29 22:56:00 +02:00
parent 7d40df9d8c
commit b498f993dd

View File

@ -1,7 +1,9 @@
package fr.neatmonster.nocheatplus.utilities;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
/**
* Allow to sort by multiple criteria, first come first serve.
@ -10,23 +12,22 @@ import java.util.Comparator;
*/
public class FCFSComparator <T> implements Comparator<T> {
private final Comparator<T>[] comparators;
private final List<Comparator<T>> comparators;
private final boolean reverse;
public FCFSComparator(Collection<Comparator<T>> comparators) {
this(comparators, false);
}
@SuppressWarnings("unchecked")
public FCFSComparator(Collection<Comparator<T>> comparators, boolean reverse) {
this.comparators = (Comparator<T>[]) comparators.toArray();
this.comparators = new ArrayList<Comparator<T>>(comparators);
this.reverse = reverse;
}
@Override
public int compare(T o1, T o2) {
for (int i = 0; i < comparators.length; i++) {
final int res = comparators[i].compare(o1, o2);
for (int i = 0; i < comparators.size(); i++) {
final int res = comparators.get(i).compare(o1, o2);
if (res != 0) {
return reverse ? -res : res;
}