首页 > 解决方案 > 如果输入列表已排序,流返回的列表是否总是排序?

问题描述

假设你有一个排序的List<String> input. 我想知道是否List<String> output将始终对以下内容进行排序?

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

标签: java-8java-stream

解决方案


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

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


推荐阅读