当前位置:首页 > 科技  > 软件

不要错过这个机会:学习Java 8 Stream,提升编码能力!

来源: 责编: 时间:2023-08-14 22:01:33 432观看
导读Java 11中提供了一组强大的Stream API,使得我们可以更加方便地对集合进行过滤、排序、映射等操作。本文将介绍Java 11 Stream API的使用,包括创建Stream、中间操作、终止操作等内容。创建Stream在Java 11中,可以通过多种

6LS28资讯网——每日最新资讯28at.com

Java 11中提供了一组强大的Stream API,使得我们可以更加方便地对集合进行过滤、排序、映射等操作。本文将介绍Java 11 Stream API的使用,包括创建Stream、中间操作、终止操作等内容。6LS28资讯网——每日最新资讯28at.com

创建Stream

在Java 11中,可以通过多种方式创建Stream对象,包括从集合、数组、文件等数据源创建Stream。6LS28资讯网——每日最新资讯28at.com

从集合创建Stream

可以使用Collection接口的stream()方法或parallelStream()方法从集合创建Stream。6LS28资讯网——每日最新资讯28at.com

以下是一个使用stream()方法从集合创建Stream的示例:6LS28资讯网——每日最新资讯28at.com

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);Stream<Integer> stream = list.stream();

在上面的示例中,我们创建了一个名为list的List对象,并使用stream()方法从该List对象创建了一个Stream<Integer>对象。6LS28资讯网——每日最新资讯28at.com

从数组创建Stream

可以使用Arrays类的stream()方法从数组创建Stream。6LS28资讯网——每日最新资讯28at.com

以下是一个使用stream()方法从数组创建Stream的示例:6LS28资讯网——每日最新资讯28at.com

int[] array = new int[] {1, 2, 3, 4, 5};IntStream stream = Arrays.stream(array);

在上面的示例中,我们创建了一个名为array的int[]数组,并使用Arrays类的stream()方法从该数组创建了一个IntStream对象。6LS28资讯网——每日最新资讯28at.com

从文件创建Stream

可以使用Files类的lines()方法从文件创建Stream。6LS28资讯网——每日最新资讯28at.com

以下是一个使用lines()方法从文件创建Stream的示例:6LS28资讯网——每日最新资讯28at.com

try {    Stream<String> stream = Files.lines(Paths.get("filename.txt"));} catch (IOException e) {    // handle exception}

在上面的示例中,我们使用Files类的lines()方法从文件中读取每一行,并创建了一个Stream<String>对象。6LS28资讯网——每日最新资讯28at.com

中间操作

在Java 11中,Stream API提供了多种中间操作,包括过滤、映射、排序等操作,这些操作不会立即执行,而是在终止操作时才会执行。6LS28资讯网——每日最新资讯28at.com

过滤操作

可以使用filter()方法对Stream中的元素进行过滤操作。6LS28资讯网——每日最新资讯28at.com

以下是一个使用filter()方法进行过滤操作的示例:6LS28资讯网——每日最新资讯28at.com

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);Stream<Integer> stream = list.stream().filter(i -> i % 2 == 0);

在上面的示例中,我们使用filter()方法对Stream中的元素进行过滤操作,只保留其中的偶数。6LS28资讯网——每日最新资讯28at.com

映射操作

可以使用map()方法对Stream中的元素进行映射操作。6LS28资讯网——每日最新资讯28at.com

以下是一个使用map()方法进行映射操作的示例:6LS28资讯网——每日最新资讯28at.com

List<String> list = Arrays.asList("apple", "banana", "orange");Stream<Integer> stream = list.stream().map(s -> s.length());

在上面的示例中,我们使用map()方法对Stream中的字符串元素进行映射操作,将其转换为对应的长度。6LS28资讯网——每日最新资讯28at.com

排序操作

可以使用sorted()方法对Stream中的元素进行排序操作。6LS28资讯网——每日最新资讯28at.com

以下是一个使用sorted()方法进行排序操作的示例:6LS28资讯网——每日最新资讯28at.com

List<String> list = Arrays.asList("apple", "banana", "orange");Stream<String> stream = list.stream().sorted();

在上面的示例中,我们使用sorted()方法对Stream中的字符串元素进行排序操作,按照字典序进行排序。6LS28资讯网——每日最新资讯28at.com

去重操作

可以使用distinct()方法对Stream中的元素进行去重操作。6LS28资讯网——每日最新资讯28at.com

以下是一个使用distinct()方法进行去重操作的示例:6LS28资讯网——每日最新资讯28at.com

List<Integer> list = Arrays.asList(1, 2, 3, 2, 4, 5);Stream<Integer> stream = list.stream().distinct();

在上面的示例中,我们使用distinct()方法对Stream中的整数元素进行去重操作。6LS28资讯网——每日最新资讯28at.com

截断操作

可以使用limit()方法对Stream中的元素进行截断操作。6LS28资讯网——每日最新资讯28at.com

以下是一个使用limit()方法进行截断操作的示例:6LS28资讯网——每日最新资讯28at.com

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

在上面的示例中,我们使用limit()方法对Stream中的元素进行截断操作,只保留前三个元素。6LS28资讯网——每日最新资讯28at.com

跳过操作

可以使用skip()方法对Stream中的元素进行跳过操作。6LS28资讯网——每日最新资讯28at.com

以下是一个使用skip()方法进行跳过操作的示例:6LS28资讯网——每日最新资讯28at.com

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);Stream<Integer> stream = list.stream().skip(2);

在上面的示例中,我们使用skip()方法对Stream中的元素进行跳过操作,跳过前两个元素。6LS28资讯网——每日最新资讯28at.com

并行操作

可以使用parallel()方法将Stream转换为并行Stream,从而进行并行操作。6LS28资讯网——每日最新资讯28at.com

以下是一个使用parallel()方法进行并行操作的示例:6LS28资讯网——每日最新资讯28at.com

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);Stream<Integer> stream = list.parallelStream().filter(i -> i % 2 == 0);

在上面的示例中,我们使用parallelStream()方法将Stream转换为并行Stream,并使用filter()方法进行过滤操作。6LS28资讯网——每日最新资讯28at.com

终止操作

在Java 11中,Stream API提供了多种终止操作,包括计数、收集、归约等操作,这些操作会触发中间操作的执行,从而得到最终的结果。6LS28资讯网——每日最新资讯28at.com

计数操作

可以使用count()方法对Stream中的元素进行计数操作。6LS28资讯网——每日最新资讯28at.com

以下是一个使用count()方法进行计数操作的示例:6LS28资讯网——每日最新资讯28at.com

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);long count = list.stream().count();

在上面的示例中,我们使用count()方法对Stream中的元素进行计数操作,得到Stream中元素的个数。6LS28资讯网——每日最新资讯28at.com

收集操作

可以使用collect()方法对Stream中的元素进行收集操作,将其转换为List、Set、Map等集合类型。6LS28资讯网——每日最新资讯28at.com

以下是一个使用collect()方法进行收集操作的示例:6LS28资讯网——每日最新资讯28at.com

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);List<Integer> result = list.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());

在上面的示例中,我们使用filter()方法对Stream中的元素进行过滤操作,然后使用collect()方法将其转换为List类型。6LS28资讯网——每日最新资讯28at.com

归约操作

可以使用reduce()方法对Stream中的元素进行归约操作,得到一个最终的结果。6LS28资讯网——每日最新资讯28at.com

以下是一个使用reduce()方法进行归约操作的示例:6LS28资讯网——每日最新资讯28at.com

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);int sum = list.stream().reduce(0, (a, b) -> a + b);

在上面的示例中,我们使用reduce()方法对Stream中的元素进行归约操作,将其求和得到最终的结果。6LS28资讯网——每日最新资讯28at.com

总结

Java 11中的Stream API提供了一组强大的操作,可以方便地对集合进行处理。本文介绍了Java 11 Stream API的创建、中间操作和终止操作等内容,并提供了示例代码。希望本文能够帮助读者更好地理解Java 11 Stream API的使用。6LS28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-5747-0.html不要错过这个机会:学习Java 8 Stream,提升编码能力!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 代码的未来洞察:程序员们对技术趋势的解读

下一篇: 又有新功能!Go 将有生成新模板的 gonew 工具链

标签:
  • 热门焦点
  • K60至尊版刚预热 一加Ace2 Pro正面硬刚

    Redmi这边刚如火如荼的宣传了K60 Ultra的各种技术和硬件配置,作为竞品的一加也坐不住了。一加中国区总裁李杰发布了两条微博,表示在自家的一加Ace2上早就已经采用了和PixelWo
  • 小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    疫情带来了网课,网课盘活了安卓平板,安卓平板市场虽然中途停滞了几年,但好的一点就是停滞的这几年行业又有了新的发展方向,例如超窄边框、高刷新率、多摄镜头组合等,这就让安卓
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 一个注解实现接口幂等,这样才优雅!

    场景码猿慢病云管理系统中其实高并发的场景不是很多,没有必要每个接口都去考虑并发高的场景,比如添加住院患者的这个接口,具体的业务代码就不贴了,业务伪代码如下:图片上述代码有
  • 华为举行春季智慧办公新品发布会 首次推出电子墨水屏平板

    北京时间2月27日晚,华为在巴塞罗那举行春季智慧办公新品发布会,在海外市场推出之前已经在中国市场上市的笔记本、平板、激光打印机等办公产品,并首次推出搭载
  • 由于成本持续增加,笔记本产品价格预计将明显上涨

    根据知情人士透露,由于材料、物流等成本持续增加,笔记本产品价格预计将在2021年下半年有明显上涨。进入6月下旬以来,全球半导体芯片缺货情况加剧,显卡、处理器
  • 三翼鸟智能家居亮相电博会,让用户体验更真实

    2021电博会在青岛国际会展中心开幕中,三翼鸟直接把“家”搬到了现场,成为了展会的一大看点。这也是三翼鸟继9月9日发布了行业首个一站式定制智慧家平台后的
Top