Only one operation is required to sort collection in reversed order.
String implements Comparable interface. The javadoc for java.lang.Comparable#compareTo() says that it returns:
a negative integer, zero, or a positive integer as this object
is less than, equal to, or greater than the specified object
To reverse order of collection you can:
[recommended] use Comparator.reverseOrder (javadoc) which
Returns a comparator that imposes the reverse ordering of the
specified comparator. (...)
List<String> strings = Arrays.asList("a","b","d", "c", "e");
reversedOrderedStrings = strings.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.joining(","));
invert order of compared parameters
reversedOrderedStrings = strings.stream()
.sorted((s1, s2) -> s2.compareTo(s1))
.collect(Collectors.joining(","));
[not recommended] change the sign of compareTo() method. This is not recommended as it can cause numeric overflow for Integer.MIN_VALUE
reversedOrderedStrings = strings.stream()
.sorted((s1, s2) -> -s1.compareTo(s2))
.collect(Collectors.joining(","));
Output for all is the same:
System.out.println(reversedOrderedStrings);
e,d,c,b,a