如果输入列表已排序,是否始终会对流返回的列表进行排序?

时间:2018-05-14 18:52:00

标签: java-8 java-stream

假设您有一个已排序的List<String> input。我想知道以下List<String> output是否总会被排序?

List<String> output = input.stream
                           .filter(<predicate>)
                           .collect(Collectors.toList());

2 个答案:

答案 0 :(得分:4)

如果您从有序集合(如列表,数组或某些生成器,如Stream.iterate,范围等)创建流,则流将保留该顺序,并且流的结果将按原始元素的顺序累积

所以在这种情况下,是的,订单会被保留。

答案 1 :(得分:2)

流中元素的顺序保留在返回的列表中,如Collectors.toList()所述:

  

收集器,它将所有输入元素收集到List中, in   遇到订单