栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Stream流的集合操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Stream流的集合操作

概念:
Stream是JDK1.8的新特性,方便操作集合,简化代码的API。
流程:
1、把集合转为Stream流
2、操作Stream流,(在管道中的中间操作和终止操作)

package com.zyj.demo.stream;

import java.util.*;
import java.util.stream.Collectors;


public class StreamApi {

    public static void main(String[] args) {

        //list添加数据
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        list.add("黑七");
        list.add("黄八");
        list.add("黄八");
        System.out.println("准备初始集合:" + list);
        //list.stream() 集合转为流
        //collect 收集流的意思,Collectors.toList()将流转为list集合

        

        //list去重复数据  distinct去掉重复数据
        List collect = list.stream().distinct().collect(Collectors.toList());
        System.out.println("去重后的结果:" + collect);
        //找出包含王的数据  filter过滤条件元素
        List wang = list.stream().filter(str -> str.contains("王")).collect(Collectors.toList());
        System.out.println("过滤后的结果:" + wang);
        //limit取几个元素
        List jie = list.stream().limit(4).collect(Collectors.toList());
        System.out.println("截取后的结果:" + jie);
        //skip取几个元素
        List skips = list.stream().skip(4).collect(Collectors.toList());
        System.out.println("截取后的结果:" + skips);
        //map对流中的元素就行统一处理
        List mapper = list.stream().map(str -> str.concat("***")).collect(Collectors.toList());
        System.out.println("拼接后的结果:"+ mapper);

        

        //集合中是否有一个元素满足条件
        Boolean anyMatch = list.stream().anyMatch(str -> str.contains("张三"));
        System.out.println("是否有一个元素满足条件:"+anyMatch);
        //集合中所有元素都满足条件
        Boolean allMatch = list.stream().allMatch(str -> str.length()>0);
        System.out.println("集合中所有元素都满足条件:"+allMatch);
        //集合中所有元素都不满足条件
        Boolean noneMatch = list.stream().noneMatch(str -> str.length()>=2);
        System.out.println("所有元素都不满足条件:"+noneMatch);
        //返回集合中任意元素
        Optional anyies = list.stream().findAny();
        System.out.println("返回集合中任意元素串行:"+anyies.get());
        for (int i = 0; i <10 ; i++) {
            Optional any = list.parallelStream().findAny();
            System.out.println("返回集合中任意元素并行:"+any);
        }
        //返回集合中第一个元素
        Optional findFirst = list.stream().findFirst();
        System.out.println("返回集合中第一个元素:"+findFirst.get());
        //循环
        list.stream().forEach(str->System.out.println("循环输出"+str));
        //将流中结果反复计算得到一个结果
        Optional reduce = list.stream().reduce((a, c) -> {
            return a + c;
        });
        System.out.println("累加的结果:"+reduce.get());
        //获取集合中元素的个数
        long count = list.stream().count();
        System.out.println("集合中元素的个数"+count);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425152.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号