Java Stream流

Stream流

Stream流的作用

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

Stream流的使用步骤

  1. 先得到一条stream流(流水线),并把数据放上去
  2. 利用Stream流中的API进行各种操作
  3. 分为中间方法和终结方法。中间方法调用完毕后还可以调用其他方法、终结方法调用完毕后不能再调用其他方法。
中间方法终结方法
过滤统计
转换打印

1 获取Stream流

    defualt Stream<E> stream()                      //Collection中的默认方法
    
    无,可以转成单列集合后获取                       //双列集合
    
    public static <T> Stream<T> stream(T[] array)       //Arrays工具类中的静态方法
    
    public static<T> Stream<T> of(T...values)               //Stream接口中的静态方法,用于零散数据

2 中间方法

  • 返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程
  • 修改Stream流中的数据,不会影响原理数组或集合中的数据
    Stream<T> filter(Predicate<? super T> predicate)        //过滤
    
    Stream<T> limit(long maxSize)   
    //获取前几个元素
    
    Stream<T> skip(long n)                                          //跳过前几个元素
    
    Stream<T> distinct()                                                //元素去重(依赖hashCode和equals方法)(底层利用hashSet去重)
    
    static<T> Stream<T> concat(Stream a,Stream b)           //合并a和b为一个流
    
    Stream<R> map(Founction<T,R> mapper)                    //转换流中的数据类型

3 终结方法

  • 终结方法返回值不为Stream对象
    void forEach(Consumer action)                   //遍历
    
    long count()                                            //统计
    
    toArray()                                                 //收集数据放到数组中,需创建函数式接口实例
    
    collect(Collector collector)                           //收集数据放到集合中
    collect(Collectors.toList/toSet/toMap)

*高级流

  • 缓冲流
    • 字节缓冲流
      • BufferedInputStream
      • BufferedOutputStream
    • 字符缓冲流
      • BufferedReader
      • BufferedWriter
  • 转换流
  • 序列化流
  • 打印流
  • 压缩流
  • commons-io

1 缓冲流

1.1 字节缓冲流

把基本流包装成高级流,提高读取数据的性能,干活的还是基本流。
原理:底层自带了长度为8192的缓冲区

    public BufferedInputStream(InputStream is)
    
    public BufferedOutputStream(OutputStream os)
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值