This exact behavior can be had using comparators from Apache
Commons Collections, which opencsv includes as a dependency. The following
code gives the same result:
List<T> predefinedList = Arrays.<T>asList(predefinedOrder);
FixedOrderComparator<T> fixedComparator = new FixedOrderComparator<>(predefinedList);
fixedComparator.setUnknownObjectBehavior(FixedOrderComparator.UnknownObjectBehavior.AFTER);
Comparator<T> c = new ComparatorChain<>(Arrays.<Comparator<T>>asList(
fixedComparator,
new NullComparator<>(false),
new ComparableComparator<>()));