前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java8新特性之stream流

Java8新特性之stream流

原创
作者头像
无敌小菜鸟
修改2022-05-13 09:44:31
3580
修改2022-05-13 09:44:31
举报
文章被收录于专栏:搬砖笔记

昨天复习了一下java新特性stream流的知识,今天记录一下笔记,下次看的时候就不用重复复习啦。

一、是什么

在Java 8中,得益于Lambda所带来的函数式编程, 引入了一个全新的Stream流概念。

Stream流的主要目的:

用于简化集合和数组操作的API。

Stream流的作用是什么,结合了什么技术?

简化集合、数组操作的API。结合了Lambda表达式。

说说Stream流的思想和使用步骤。

  1. 先得到集合或者数组的Stream流(就是一根传送带)。
  2. 把元素放上去。
  3. 然后就用这个Stream流简化的API来方便的操作元素。

二、获取流的方式

Stream操作集合或者数组的第一步是先得到Stream流,然后才能使用流的功能。

集合获取Stream流的方式

可以使用Collection接口中的默认方法stream​()生成流

名称

说明

default Stream<E> stream​()

获取当前集合对象的Stream流

数组获取Stream流的方式

名称

说明

public static <T> Stream<T> stream(T[] array)

获取当前数组的Stream流

public static<T> Stream<T> of(T... values)

获取当前数组/可变数据的Stream流

三、常用方法

Stream流的常用API(中间操作方法)

名称

说明

Stream<T> filter(Predicate<? super T> predicate)

用于对流中的数据进行过滤。

Stream<T> limit​(long maxSize)

获取前几个元素

Stream<T> skip​(long n)

跳过前几个元素

Stream<T> distinct​()

去除流中重复的元素。依赖(hashCode和equals方法)

static <T> Stream<T> concat​(Stream a, Stream b)

合并a和b两个流为一个流

注意:

中间方法也称为非终结方法,调用完成后返回新的Stream流可以继续使用,支持链式编程。

在Stream流中无法直接修改集合、数组中的数据。

Stream流的常见终结操作方法

名称

说明

void forEach​(Consumer action)

对此流的每个元素执行遍历操作

long count​()

返回此流中的元素数

注意:终结操作方法,调用完成后流就无法继续使用了,原因是不会返回Stream了。

2种方法的区别:

终结和非终结方法的含义是什么?

终结方法后流不可以继续使用,非终结方法会返回新的流,支持链式编程。

四、案例测试

常用API

创建一个集合

代码语言:javascript
复制
//创建一个集合,存储多个字符串元素
ArrayList<String> list = new ArrayList<String>();
list.add("林青霞");
list.add("张曼玉");
list.add("王祖贤");
list.add("柳岩");
list.add("张敏");
list.add("张无忌");

输出所有以"张"开头的元素

代码语言:javascript
复制
list.stream().filter(s -> s.startsWith("张")).forEach(System.out::println);
1
1

常见终结操作方法

代码语言:javascript
复制
//需求1:把集合中的元素在控制台输出
list.stream().forEach(System.out::println);
System.out.println("-----------统计集合中有几个以张开头的元素--------------------");
//需求2:统计集合中有几个以张开头的元素,并把统计结果在控制台输出
long count = list.stream().filter(s -> s.startsWith("张")).count();
System.out.println(count);

完!下次还需要记录的话,还会修改这个文章。

腾云先锋(TDP,Tencent Cloud Developer Pioneer)是腾讯云GTS官方组建并运营的技术开发者群体。这里有最专业的开发者&客户,能与产品人员亲密接触,专有的问题&需求反馈渠道,有一群志同道合的兄弟姐妹。来加入属于我们开发者的社群吧!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、是什么
  • 二、获取流的方式
  • 三、常用方法
  • 四、案例测试
    • 常用API
      • 常见终结操作方法
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档