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

java8 stream的常用法记录

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

java8 stream的常用法记录

记录一下工作中常用的java8 stream用法。

package com.example.demo.test;

import com.alibaba.fastjson.JSONArray;
import com.example.demo.beans.entity.TMybatis;
import net.minidev.json.JSONUtil;

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

public class StreamTest {
    public static void main(String[] args) throws Exception{
        List mybatis = new ArrayList<>();
        for(int i=0;i<10;i++){
            TMybatis tMybatis = new TMybatis();
            tMybatis.setObjid(i+1);

            if(i%2 == 0){
                tMybatis.setRemoveTag(1);
            }
            else {
                tMybatis.setRemoveTag(0);
            }

            mybatis.add(tMybatis);
        }

        //求和
        int add = mybatis.stream().collect(Collectors.summingInt(TMybatis::getObjid));
        int add1 = mybatis.stream().collect(Collectors.summingInt(t -> {
            return t.getObjid() + 1;
        }));
        System.out.println(add+","+add1);

        //分组
        Map> groupBy = mybatis.stream().collect(Collectors.groupingBy(TMybatis::getRemoveTag));

        //List转Map,toMap 如果集合对象有重复的key,会报错Duplicate key ....可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2
        Map listToMap = mybatis.stream().collect(Collectors.toMap(TMybatis::getObjid,m->m,(k1,k2)->k1));
        Map listToMap1 = mybatis.stream().collect(Collectors.toMap(TMybatis::getObjid,TMybatis::getRemoveTag));

        //过滤
        List mybatisNew = mybatis.stream().filter(item -> item.getRemoveTag()==1).collect(Collectors.toList());
        List mybatisNew1 = mybatis.stream().filter(item -> {
            return item.getRemoveTag() == 0;
        }).collect(Collectors.toList());

        //提取某个字段
        List objids = mybatis.stream().map(TMybatis::getObjid).collect(Collectors.toList());
        List objids1 = mybatis.stream().map(item -> item.getObjid()+item.getRemoveTag()).collect(Collectors.toList());
        System.out.println(objids);


        //排序
        List mybatisNew2 = mybatis.stream().sorted(Comparator.comparing(TMybatis::getObjid).reversed().
                thenComparing(TMybatis::getRemoveTag)).collect(Collectors.toList());
        List mybatisNew3 = mybatis.stream().sorted((o1,o2) -> {
            return o1.getObjid().compareTo(o2.getObjid());
        }).collect(Collectors.toList());

        JSONArray array = new JSONArray(Collections.singletonList(mybatisNew2));
        System.out.println(array.toJSONString());

        //分页
        List mybatisNew4 = mybatis.stream().skip(2).limit(3).collect(Collectors.toList());
        array = new JSONArray(Collections.singletonList(mybatisNew4));
        System.out.println(array.toJSONString());

        //拼接
        String join = mybatis.stream().map(t -> {
            return t.getObjid().toString();
        }).collect(Collectors.joining(","));
        System.out.println(join);

        //任一匹配
        boolean anyMatch = mybatis.stream().anyMatch(t -> t.getObjid() == 1);
        System.out.println(anyMatch);

    }
}

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

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

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