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流的简单使用介绍,谢谢。

猜你喜欢

转载自www.cnblogs.com/hdllhd/p/9502662.html