zoukankan      html  css  js  c++  java
  • Java中stream的简单使用

    在Java8中,出现了stream流的概念。我个人认为,流的使用可以帮助我们更好的对数据集合进行迭代。

    下面,先简单看一下普通for循环和stream流的代码。

    public static void main(String[] args) {
            //取出偶数
            List<Integer> list = Arrays.asList(1,2,3,4);
            //1.for循环
            List<Integer> newList1 = new ArrayList<>();
            for (Integer integer : list) {
                if(integer % 2 == 0){
                    newList1.add(integer);
                }
            }
            System.out.println(newList1);
            //2.stream流
            List<Integer> newList2 = list.stream().filter(x -> x % 2 == 0).collect(Collectors.toList());
            System.out.println(newList2);
        }
    

    输出结果:

    [2, 4]
    [2, 4]

    可以看出,对于stream流的使用,有时是可以简化我们代码的负责度,并且配合lambda表达式,可以让代码更加容易被人理解。

    下面简单介绍一下Java中stream流的使用:

    1.创建stream流

    List集合创建创建:调用List的stream方法即可,如 list.stream()

    数组的创建方式为:通过Arrays.stream()传入数组即可,如:Arrays.stream(new Integer[]{1,2})

    注:stream流被创建出来之后只能被使用一次,如需再次循环需要再次创建!

    2. 常用方法介绍:

    流的方法被分为中间操作和终端操作,顾名思义,中间操作是指调用方法后生成新的流,可以继续执行操作,而终端操作则是结束流的使用。

    中间操作:

      1.filter  过滤掉不符合的数据

      2.limit  只取前x条数据

      3.skip  跳过(删除)x条数据

      4.distinct  去重复数据

      5.sorted  排序

      6.map  对数据重整,生成新的数据流(如何从用户集合流中取出用户年龄作为新的流)

    终端操作:

      1.count  统计数据数量

      2.forEach  对流中每个数据都执行传入的方法

      3.anyMatch  至少一个匹配,返回bool

      4.allMatch  匹配所有,返回bool

      5.collect  可以传入集合中的常用方法,例如:Collector.toList()将流转回集合,Collector.groupingBy()将流中数据分组

      6.reduce  进行归约操作,例如求和等

    今天就先做了一下Java中stream流的简单使用介绍,谢谢。

  • 相关阅读:
    kbmmw 5.14.00 发布
    关于C++ auto使用要注意的一点
    git设置socks5代理
    电子书分享网站
    spring cache相关
    intellij idea开启debug热加载/热部署
    git 多次commit合并成一次提交
    es feature一览
    数据中台
    Java Agent
  • 原文地址:https://www.cnblogs.com/hdllhd/p/9502662.html
Copyright © 2011-2022 走看看