前言
Java Stream 是一种弱小的数据处理工具,能够帮忙开发人员疾速高效地解决和转换数据流。应用 Stream 操作能够大大简化代码,使其更具可读性和可维护性,从而进步开发效率。本文将为您介绍 Java Stream 操作的所有方面,包含 range、range、iterate、generate 等操作,让你的代码行云流水,更加优雅。
- range():生成一个蕴含指定范畴内所有整数的 Stream。
- rangeClosed():生成一个蕴含指定范畴内所有整数(包含端点)的 Stream。
- iterate():依据指定的初始值和 UnaryOperator 生成一个有限长度的 Stream。
- generate():依据指定的 Supplier 生成一个有限长度的 Stream。
- takeWhile():返回满足指定条件的元素,直到遇到第一个不满足条件的元素。
- dropWhile():返回不满足指定条件的元素,直到遇到第一个满足条件的元素。
- peek():对每个元素执行指定的操作,但并不生产元素。
- boxed():将 Stream 中的根本类型元素装箱成对应的包装类型。
- parallel():返回一个并行的 Stream。
- sequential():返回一个程序的 Stream。
示例
1. 应用 range():生成一个蕴含指定范畴内所有整数的 Stream。
代码示例:
import java.util.stream.IntStream;public class RangeExample { public static void main(String[] args) { IntStream.range(1, 6) .forEach(System.out::println); }}
输入后果:
12345
2. 应用 rangeClosed():生成一个蕴含指定范畴内所有整数(包含端点)的 Stream。
代码示例:
import java.util.stream.IntStream;public class RangeClosedExample { public static void main(String[] args) { IntStream.rangeClosed(1, 5) .forEach(System.out::println); }}
输入后果:
12345
3. 应用 iterate():依据指定的初始值和 UnaryOperator 生成一个有限长度的 Stream。
代码示例:
import java.util.stream.Stream;public class IterateExample { public static void main(String[] args) { Stream.iterate(2, n -> n * 2) .limit(5) .forEach(System.out::println); }}
输入后果:
2481632
4. 应用 generate():依据指定的 Supplier 生成一个有限长度的 Stream。
代码示例:
import java.util.Random;import java.util.stream.Stream;public class GenerateExample { public static void main(String[] args) { Stream.generate(() -> new Random().nextInt(100)) .limit(5) .forEach(System.out::println); }}
输入后果:
6477412173
5. 应用 takeWhile():返回满足指定条件的元素,直到遇到第一个不满足条件的元素。
代码示例:
import java.util.stream.Stream;public class TakeWhileExample { public static void main(String[] args) { Stream.of("apple", "banana", "orange", "pear") .takeWhile(s -> s.startsWith("a")) .forEach(System.out::println); }}
输入后果:
apple
6. 应用 dropWhile():返回不满足指定条件的元素,直到遇到第一个满足条件的元素。
代码示例:
import java.util.stream.Stream;public class DropWhileExample { public static void main(String[] args) { Stream.of("apple", "banana", "orange", "pear") .dropWhile(s -> s.startsWith("a")) .forEach(System.out::println); }}
输入后果:
bananaorangepear
7. 应用 peek():对每个元素执行指定的操作,但并不生产元素。
代码示例:
import java.util.stream.Stream;public class PeekExample { public static void main(String[] args) { Stream.of("apple", "banana", "orange", "pear") .peek(System.out::println) .count(); }}
输入后果:
applebananaorangepear
8. 应用 boxed():将 Stream 中的根本类型元素装箱成对应的包装类型。
代码示例:
import java.util.stream.IntStream;public class BoxedExample { public static void main(String[] args) { IntStream.range(1, 6) .boxed() .forEach(System.out::println); }}
输入后果:
12345
9. 应用 parallel():返回一个并行的 Stream。
代码示例:
import java.util.stream.Stream;public class ParallelExample { public static void main(String[] args) { Stream.of("apple", "banana", "orange", "pear") .parallel() .forEach(System.out::println); }}
输入后果:
pearbananaappleorange
10. 应用 sequential():返回一个程序的 Stream。
代码示例:
import java.util.stream.Stream;public class SequentialExample { public static void main(String[] args) { Stream.of("apple", "banana", "orange", "pear") .parallel() .sequential() .forEach(System.out::println); }}
输入后果:
applebananaorangepear
结尾
如果感觉对你有帮忙,能够多多评论,多多点赞哦,也能够到我的主页看看,说不定有你喜爱的文章,也能够顺手点个关注哦,谢谢。
我是不一样的科技宅,每天提高一点点,体验不一样的生存。咱们下期见!