Java Stream API 提供了许多中间操作,这些操作可以在流上执行并返回一个新的流。以下是一些常用的中间操作:
- filter:过滤流中的元素,只保留满足给定条件的元素。
- map:将流中的每个元素转换为另一种形式,通常用于提取或计算属性。
- flatMap:将流中的每个元素转换为一个流,然后将所有流连接成一个单一的流。
- distinct:去除流中的重复元素。
- sorted:对流中的元素进行排序,可以根据自定义比较器进行排序。
- peek:在流的每个元素上执行一个操作,并返回一个包含相同元素的新流。这个操作不会改变流本身。
- limit:限制流的大小,只保留前 n 个元素。
- skip:跳过流中的前 n 个元素,返回一个包含剩余元素的新流。
- parallel:将流转换为并行流,以利用多核处理器进行并行操作。
- sequential:将并行流转换为顺序流,以便按顺序处理元素。
- unordered:移除流中的元素的顺序,以便在某些操作中提高性能。
这些中间操作都是惰性求值的,也就是说,它们不会立即执行,而是在终端操作(如 collect、forEach 等)被调用时才会执行。这使得我们可以链式地组合多个中间操作来完成复杂的数据处理任务。