С помощью Iterable<T>
легко:
T last = null;
for (T t : iterable) {
if (last != null && last.compareTo(t) > 0) {
return false;
}
last = t;
}
return true;
Но я не могу придумать простой способ сделать то же самое для Stream<T>
, который избегает потребления всех элементов, когда это не нужно.