Guava provides this functionality through its Comparators class.
boolean sorted = Comparators.isInOrder(list, comparator);
There’s also the Ordering class, though this is mostly obsolete. An Ordering is a Comparator++. In this case, if you have a list of some type that implements Comparable, you could write:
boolean sorted = Ordering.natural().isOrdered(list);
This works for any Iterable, not just List, and you can handle nulls easily by specifying whether they should come before or after any other non-null elements:
Ordering.natural().nullsLast().isOrdered(list);
Also, since you mentioned that you’d like to be able to check for reverse order as well as normal, that would be done as:
Ordering.natural().reverse().isOrdered(list);