Java 8 Stream sorted()

介绍Stream sorted()三种排序的实现「自然排序」「比较器」「反向排序」

sorted():它使用自然排序对流的元素进行排序。元素类必须实现Comparable接口

sorted(Comparator<? super T> comparator):这里我们使用lambda表达式创建Comparator的实例。我们可以按升序和降序对流元素进行排序

以下代码行将按自然顺序对列表进行排序

为了反转自然排序Comparator提供了reverseOrder()方法。我们使用它如下

以下代码行使用Comparator对列表进行排序

为了反转顺序,Comparator提供了reversed()方法。我们使用这种方法如下

Stream sorted() with List

Stream sorted() with Set

需要注意的一点是,不能把排序后的结果重新输出到另一个Set中,因为Set无顺序,会破坏顺序

Stream sorted() with Map

MapSet一样无顺序,如果把排序后的结果重新输出到另一个Map中中,可能会导致顺序被破坏

我们可以使用LinkedHashMap,这样会保证顺序