小工具知识网

当前位置: 首页 > 行业知识 > Stream流(Java)

行业知识

Stream流(Java)

2026-11-10 07:44:52 来源:互联网转载

���录

一、介绍

二、Stream流的使用步骤

三、Stream流常见的中间方法

四、Stream流常见的终结方法


一、介绍

Stream也叫Stream流,是JDK8开始新增的一套API,可以用于操作集合或者数组的数据。

优势:Stream流大量的结合了Lambda的语法风格来编程,提供了更加简单的方式操作集合或者数组中的数据,代码更简洁。

import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.stream.Collectors;public class Test1 {    public static void main(String[] args) {        List names = new ArrayList();        Collections.addAll(names,"何柳柳","张大大","张丹","李四","张溜溜");        System.out.println(names);        //找出姓张,且是三个字的名字,存入到一个新集合        //1.老方法        List list = new ArrayList();        for(String s : names){            if(s.startsWith("张")&& s.length() ==3){                list.add(s);            }        }        System.out.println(list);        //2.使用Stream流        List list2 = names.stream().filter(s -> s.startsWith("张"))                .filter(s -> s.length()==3).collect(Collectors.toList());        System.out.println(list2);    }}

二、Stream流的使用步骤

1.获得数据源,通过数据源获取Stream流,与数据源建立连接

2.调用流水线的各种方法对数据进行处理、计算。

3.获取处理的结果,对结果进行遍历、统计、收集到一个新集合中返回

获取集合的stream流:stream()

获取数组的stream流:

1.stream(T[] array)获取当前数组的stream流

 2.of(T ... values)获取当前接收数据的stream流

import java.util.*;import java.util.stream.Stream;public class Test2 {    public static void main(String[] args) {        //1.获取List集合的Stream流        List names = new ArrayList();        Collections.addAll(names,"张三","李四","王五");        Stream stream = names.stream();        //2.Set集合获取Stream流        Set set = new HashSet();        Collections.addAll(set,"张曼玉","阿三哥","孙悟空");        Stream stream1 = set.stream();        stream1.filter(s -> s.contains("张")).forEach(s->System.out.println(s));                //3.Map集合获取Stream流        Map mp = new HashMap();        Set ks = mp.keySet();        Collection values = mp.values();        Stream vs = values.stream(); //此法可以对值处理                Set entries = mp.entrySet();        Stream kvs = entries.stream();        kvs.filter(e -> e.getKey().contains("")); //此法可对键值对处理                //4.数组获取Stream流        String[] name2 = {"1","2","3"};        Stream s1 = Arrays.stream(name2);        Stream s2 = Stream.of(name2);    }}

三、Stream流常见的中间方法

中间方法是指调用完成后会返回新的Stream流,可以继续使用(支持链式编程)

图片来自itheima:

distinct去重复,自定义类型对象要希望内容一样就重复的话,需要重写hashCode和equals

 

四、Stream流常见的终结方法

 终结方法指的是调用完成后,不会返回新Stream了,没法继续使用流了。

 收集Stream流:把stream流操作后的结果转回到集合或数组中去返回:

流只能收集一次。

 

变成Map的时候如果有重复需要.distinct()

 

上一篇:饿了吗服务器繁忙怎么解决?

下一篇:怎么重置设备的dns服务器?