[Java8 stream流相关功能demo ]

目录

 🌼前言:

 🌼  Java8 Stream都有哪些函数及使用含义:

 🌼Java8 Stream可以从集合、数组、文件等数据源中创建。下面是一些创建Stream的示例代码:

Java8 Stream可以使用filter()方法过滤数据,例如只保留符合条件的数据。下面是一个过滤数据的示例代码:

 🌼Java8 Stream可以使用map()方法映射数据,例如将一种类型的数据转换成另一种类型的数据。下面是一个映射数据的示例代码:

 🌼Java8 Stream可以使用sorted()方法排序数据,例如按照某个属性进行排序。下面是一个排序数据的示例代码:

 🌼Java8 Stream可以使用reduce()方法聚合数据,例如求和、求最大值、求最小值等。下面是一个求和的示例代码:

 🌼Java8 Stream可以使用reduce()方法聚合数据,例如求和、求最大值、求最小值等。下面是一个求和的示例代码:

 🌼Java8 Stream可以使用parallel()方法并行处理数据,例如并行计算。下面是一个并行计算的示例代码:

 🌼noneMatch()方法:判断是否所有元素都不符合条件。


 🌼前言:

   Java8 Stream是Java8中新增的一个API,它可以用于处理集合和数组等数据源,提供了丰富的操作方法,例如过滤、映射、排序、聚合等。使用Java8 Stream可以简化代码,提高程序的可读性和可维护性

 🌼  Java8 Stream都有哪些函数 :

  • filter(Predicate predicate):过滤数据,返回一个符合条件的Stream。

  • map(Function<T, R> mapper):映射数据,返回一个映射后的Stream。

  • flatMap(Function<T, Stream> mapper):将多个Stream合并成一个Stream。

  • sorted():排序数据,返回一个排序后的Stream。

  • distinct():去重,返回一个去重后的Stream。

  • limit(long maxSize):限制元素数量,返回一个限制后的Stream。

  • skip(long n):跳过元素数量,返回一个跳过后的Stream。

  • forEach(Consumer action):遍历数据,对每个元素执行指定的操作。

  • reduce(T identity, BinaryOperator accumulator):聚合数据,返回一个聚合后的结果。

  • collect(Collector<T, A, R> collector):收集数据,返回一个收集后的结果。

  • anyMatch(Predicate predicate):判断是否存在符合条件的元素。

  • allMatch(Predicate predicate):判断是否所有元素都符合条件。

  • noneMatch(Predicate predicate):判断是否所有元素都不符合条件。

  • findFirst():返回第一个元素。

  • findAny():返回任意一个元素。

  • count():返回元素数量。

  • min(Comparator comparator):返回最小值。

  • max(Comparator comparator):返回最大值。

  • toArray():将Stream转换成数组。

  • parallel():并行处理数据。

  • sequential():串行处理数据。

  • onClose(Runnable closeHandler):在Stream关闭时执行指定的操作。

  • isParallel():判断是否为并行Stream。

 🌼Java8 Stream可以从集合、数组、文件等数据源中创建。下面是一些创建Stream的示例代码:

// 从集合中创建Stream
List<String> list = Arrays.asList("apple", "banana", "orange");
Stream<String> stream1 = list.stream();

// 从数组中创建Stream
int[] array = {1, 2, 3, 4, 5};
IntStream stream2 = Arrays.stream(array);

// 从文件中创建Stream
Path path = Paths.get("data.txt");
Stream<String> stream3 = Files.lines(path);
Java8 Stream可以使用filter()方法过滤数据,例如只保留符合条件的数据。下面是一个过滤数据的示例代码:

我们使用了filter()方法过滤了以字母"a"开头的字符串,只保留符合条件的字符串,并使用forEach()方法输出结果。

List<String> list = Arrays.asList("apple", "banana", "orange");
Stream<String> stream = list.stream();
stream.filter(s -> s.startsWith("a")).forEach(System.out::println);

 🌼Java8 Stream可以使用map()方法映射数据,例如将一种类型的数据转换成另一种类型的数据。下面是一个映射数据的示例代码:

我们使用了map()方法将字符串转换成大写字母,并使用forEach()方法输出结果。
List<String> list = Arrays.asList("apple", "banana", "orange");
Stream<String> stream = list.stream();
stream.map(String::toUpperCase).forEach(System.out::println);

 🌼Java8 Stream可以使用sorted()方法排序数据,例如按照某个属性进行排序。下面是一个排序数据的示例代码:

在上面的代码中,我们使用了sorted()方法按照年龄进行排序,并使用forEach()方法输出结果。

List<Person> list = Arrays.asList(
    new Person("Alice", 20),
    new Person("Bob", 30),
    new Person("Charlie", 25)
);
Stream<Person> stream = list.stream();
stream.sorted(Comparator.comparing(Person::getAge)).forEach(System.out::println);

 

 🌼Java8 Stream可以使用reduce()方法聚合数据,例如求和、求最大值、求最小值等。下面是一个求和的示例代码:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
int sum = stream.reduce(0, Integer::sum);
System.out.println(sum);

 🌼Java8 Stream可以使用reduce()方法聚合数据,例如求和、求最大值、求最小值等。下面是一个求和的示例代码:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
int sum = stream.reduce(0, Integer::sum);
System.out.println(sum);

 

 🌼Java8 Stream可以使用parallel()方法并行处理数据,例如并行计算。下面是一个并行计算的示例代码:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.parallelStream();
int sum = stream.reduce(0, Integer::sum);
System.out.println(sum);

 

 🌼noneMatch()方法:判断是否所有元素都不符合条件。

  1. anyMatch()方法:判断是否存在符合条件的元素。
  2. flatMap()方法:将多个Stream合并成一个Stream。

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
boolean result = stream.noneMatch(i -> i < 0);
System.out.println(result);


List<List<Integer>> list = Arrays.asList(
    Arrays.asList(1, 2),
    Arrays.asList(3, 4),
    Arrays.asList(5, 6)
);
Stream<List<Integer>> stream1 = list.stream();
Stream<Integer> stream2 = stream1.flatMap(Collection::stream);
stream2.forEach(System.out::println);


List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
boolean result = stream.anyMatch(i -> i > 3);
System.out.println(result);


List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.skip(2).forEach(System.out::println);
skip()方法:跳过元素数量,返回一个跳���后的Stream。


List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.limit(3).forEach(System.out::println);

limit()方法:限制元素数量,返回一个限制后的Stream。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是汤圆丫

怎么 给1分?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值