zoukankan      html  css  js  c++  java
  • 针对list<object>中的对象数据的一些简单处理

    一    首先创建一个实体类(PersonData ):

    package hello;

    public class PersonData {
      String Id;
      String Name;
      String Type;
      int Age;
      public String getId() {
        return Id;
      }
      public void setId(String id) {
        Id = id;
      }
       public String getName() {
        return Name;
      }
      public void setName(String name) {
        Name = name;
      }
      public String getType() {
        return Type;
      }
      public void setType(String type) {
        Type = type;
      }
      public int getAge() {
        return Age;
      }
      public void setAge(int age) {
        Age = age;
      }
      @Override
      public String toString() {
        return "PersonData [Id=" + Id + ", Name=" + Name + ", Type=" + Type + ", Age=" + Age + "]";
      }
    }

    二   下面就是针对list的一些简单处理:

    package hello;

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.stream.Collectors;

    public class test {
      public static void main(String[] args) {
        List<PersonData> list = new ArrayList<PersonData>();
        PersonData p1 = new PersonData();
        p1.setId("1");
        p1.setName("张三");
        p1.setType("管理员");
        p1.setAge(20);
        list.add(p1);

        PersonData p2 = new PersonData();
        p2.setId("2");
        p2.setName("李四");
        p2.setType("管理员");
        p2.setAge(30);
        list.add(p2);

        PersonData p3 = new PersonData();
        p3.setId("3");
        p3.setName("王五");
        p3.setType("用户");
        p3.setAge(40);
        list.add(p3);

        // 跟据某个属性分组
        Map<String, List<PersonData>> collect = list.stream().collect(Collectors.groupingBy(PersonData::getType));
        System.out.println(collect);

        // 根据某个属性分组,汇总某个属性
        Map<String, Integer> collect2 = list.stream().collect(Collectors.groupingBy(PersonData::getType, Collectors.summingInt(PersonData::getAge)));
        System.out.println(collect2);

        // 根据某个属性添加条件过滤数据,
        list = list.stream().filter(u -> !u.getType().equals("访客")).collect(Collectors.toList());
        System.out.println(list);

        // 判断一组对象里面有没有属性值是某个值
        boolean add = list.stream().anyMatch(m -> "王五".equals(m.getName()));
        System.out.println(add);

        // 取出一组对象的某个属性组成一个新集合
        List<String> names = list.stream().map(PersonData::getName).collect(Collectors.toList());
        System.out.println(names);
      }
    }

  • 相关阅读:
    Vue自定义指令 directive
    Vue过滤器 filters
    贪心
    家庭作业
    线段
    数列极差
    shell
    智力大冲浪
    加工生产调度
    喷水装置
  • 原文地址:https://www.cnblogs.com/czq520/p/11647548.html
Copyright © 2011-2022 走看看