美文网首页
Java常用的集合转流处理方法

Java常用的集合转流处理方法

作者: 你家门口的两朵云 | 来源:发表于2021-11-09 13:31 被阅读0次

我们经常遇到需要对查出来的List集合进行筛选,条件判断,分组等,虽然可以在mapper层控制,但是难免在业务中不能去改dao层,需要自己手动控制
pojo类
Person.java

@Data
public class Person{
    // id
    private int idNum;
    // 名字
    private String name;
    //  地址
    private String address;
    //  年龄
    private int age;
    //  身高
    private String height;
    //  体重
    private String weight;
}

PersonInfo.java

@Data
@Accessors(chain = true) //开启 链式注入
public class PersonInfo {
    // id
    int idNum;
    // 名字
    String name;
    //  地址
    String address;
}

测试类Test

/**
 * Java集合流的一些基本使用(持续完善中...)
 */
public class JustTest {
    public static void main(String[] args) {
        List<Person> personList = new ArrayList<>();
        Person person ;
        //造数据 begin
        for (int i = 0; i < 100; i++) {
            person = new Person();
            person.setIdNum(i);
            person.setName("张三"+i);
            person.setAge(10+i%4);
            person.setAddress("上海市青浦区");
            person.setHeight("180cm");
            person.setWeight("50kg");
            personList.add(person);
        }
        for (int i = 0; i < 100; i++) {
            person = new Person();
            person.setIdNum(i);
            person.setName("张三"+i);
            person.setAge(20+i%3);
            person.setAddress("上海市青浦区");
            person.setHeight("180cm");
            person.setWeight("50kg");
            personList.add(person);
        }
        for (int i = 0; i < 100; i++) {
            person = new Person();
            person.setIdNum(i);
            person.setName("张三"+i);
            person.setAge(30+i%3);
            person.setAddress("上海市青浦区");
            person.setHeight("180cm");
            person.setWeight("50kg");
            personList.add(person);
        }
        for (int i = 0; i < 100; i++) {
            person = new Person();
            person.setIdNum(i);
            person.setName("张三"+i);
            person.setAge(40+i%4);
            person.setAddress("上海市青浦区");
            person.setHeight("180cm");
            person.setWeight("50kg");
            personList.add(person);
        }
        //造数据 end

        //1.返回key value集合,value是对应key条件的分组;根据pojo的某个字段分组
        Map<Integer, List<Person>> collect = personList.parallelStream().collect(Collectors.groupingBy(Person::getAge, Collectors.toList()));
        //2.筛选出含有person.age==43,并返回封装成List集合;
        List<Person> peopleList = personList.parallelStream().filter(e -> e.getAge == 43).collect(Collectors.toList());
        //3使用map,将Person的的部分数据转存到PersonInfo对象,再封装返回List<PersonInfo>;
        List<PersonInfo> list = personList.parallelStream().map(e -> new PersonInfo().setIdNum(e.getIdNum()).setName(e.getName()).setAddress(e.getAddress())).collect(Collectors.toList());
    }
}

相关文章

  • Java常用的集合转流处理方法

    我们经常遇到需要对查出来的List集合进行筛选,条件判断,分组等,虽然可以在mapper层控制,但是难免在业务中不...

  • Java基础之Collection集合

    标题常用集合 Java集合中,几个常用集合关系图 Collection单列集合中常用集中集合关系 Collecti...

  • Java后端知识体系

    基础重点(必须扎实) Java语言 语言基础 《Java核心技术》基础语法面向对象常用API异常处理集合IO多线程...

  • frida常用api

    Frida 常用模块API: Java 模块:Hook Java 层的类 方法 相关 Module 模块:处理so...

  • java学习常用方法集合

    1.正则方法

  • Java基础之集合类

    Java基础之集合类 集合类简单介绍 Java集合是Java提供的工具包,包含了常用的数据结构:集合、链表、队列、...

  • Java程序猿想超神?先回答这些问题。

    一、Java基础 实例方法和静态方法有什么不一样? Java中的异常有哪几类?分别怎么使用? 常用的集合类有哪些?...

  • Java程序猿想超神?先回答这些问题。

    一、Java基础 实例方法和静态方法有什么不一样? Java中的异常有哪几类?分别怎么使用? 常用的集合类有哪些?...

  • 集合概述

    一:集合的UML类图 二:集合工具的分析 (Java集合是java提供的工具) 常用的数据结构: 集合、链表、队列...

  • Java集合干货系列-集合总体大纲

    前言 Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工...

网友评论

      本文标题:Java常用的集合转流处理方法

      本文链接:https://www.haomeiwen.com/subject/chbmzltx.html