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

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

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

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

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

创建Stream

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

从集合创建Stream

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

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

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

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

从数组创建Stream

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

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

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

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

从文件创建Stream

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

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

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

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

中间操作

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

过滤操作

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

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

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

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

映射操作

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

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

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

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

排序操作

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

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

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

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

去重操作

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

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

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

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

截断操作

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

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

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

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

跳过操作

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

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

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

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

并行操作

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

以下是一个使用parallel()方法进行并行操作的示例:igR28资讯网——每日最新资讯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()方法进行过滤操作。igR28资讯网——每日最新资讯28at.com

终止操作

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

计数操作

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

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

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

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

收集操作

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

以下是一个使用collect()方法进行收集操作的示例:igR28资讯网——每日最新资讯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类型。igR28资讯网——每日最新资讯28at.com

归约操作

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

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

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

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

总结

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

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

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

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

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

标签:
  • 热门焦点
  • 俄罗斯:将审查iPhone等外国公司设备 保数据安全

    iPhone和特斯拉都属于在各自领域领头羊的品牌,推出的产品也也都是数一数二的,但对于一些国家而言,它们的产品可靠性和安全性还是在限制范围内。近日,俄罗斯联邦通信、信息技术
  • 8月总票房已突破10亿!《封神》第一:口碑已经成了

    8月5日消息,据灯塔专业版数据,截至8月5日9时35分,8月总票房(含预售)已突破10亿。其中,《封神》以大比分的优势领先。根据官方消息,目前该片总票房已经超过14.
  • 0糖0卡0脂 旭日森林仙草乌龙茶优惠:15瓶到手29元

    旭日森林无糖仙草乌龙茶510ml*15瓶平时要卖为79.9元,今日下单领取50元优惠券,到手价为29.9元。产品规格:0糖0卡0脂,添加草本仙草汁,清凉爽口,富含茶多酚,保留
  • 从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的&ldquo;7天甘肃行&rdquo;直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,&ldquo;7
  • 阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • 微博大门常打开,迎接海外画师漂洋东渡

    作者:互联网那些事&ldquo;起猛了,我能看得懂日语了&rdquo;。&ldquo;为什么日本人说话我能听懂?&rdquo;&ldquo;中文不像中文,日语不像日语,但是我竟然看懂了&rdquo;&hellip;&hell
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • OPPO K11搭载高性能石墨散热系统:旗舰同款 性能凉爽释放

    日前OPPO官方宣布,将于7月25日14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼
Top