一    首先创建一个实体类(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);
  }
}

针对list<object>中的对象数据的一些简单处理的更多相关文章

  1. php中json对象数据的输出转化

    php中json对象数据的输出转化 public function get_my_now_citys(){ $datas=$this->_post('datas'); //前台js脚本传递给后端 ...

  2. Ajax请求php返回json对象数据中包含有数字索引和字符串索引,在for in循环中取出数据的顺序问题

    //php中的数组数据格式 Array ( [all] => Array ( [title] => ALL [room_promotion_id] => all ) [best_av ...

  3. iOS中归档对象的创建,数据写入与读取

    归档(archiving)是指另一种形式的序列化,但它是任何对象都可以实现的更常规的模型.专门编写用于保存数据的任何模型对象都应该支持归档.比属性列表多了很良好的伸缩性,因为无论添加多少对象,将这些对 ...

  4. Django中更新多个对象数据与删除对象的方法

    更新多个对象 例如说我们现在想要将Apress Publisher的名称由原来的”Apress”更改为”Apress Publishing”.若使用save()方法,如: ? 1 2 3 >&g ...

  5. Object中的方法以及对象相等的判定

    看图说话 Object有以下几个方法 getClass() final类型,主要是用来获得运行时的类型 hashCode() 返回该对象的哈希码值,方法是为了提高哈希表(例如 java.util.Ha ...

  6. PHP中的PDO数据对象

    PDO: PHP Data Object:php的数据对象.pdo是数据库操作工具类!1,它能操作很多种数据库,比如mysql,oracle,sybase....2,它具有操作数据库的更多的功能,比如 ...

  7. APEX:对object中数据进行简单处理?

    在Salesforce中,常常要对各种数据进行处理,已满足业务逻辑.本篇文章会介绍如何实现从object获取数据,然后将取得的数据进行一系列简单处理. 第一步:SongName__c 是一个新建的ob ...

  8. Flexigrid从对象中加载数据

    (有问题,在找…………) Flexigrid是用来动态加载数据的一种比较好(老)的Jquery表插件,然后有些时候,我们需要其从本地或者jQuery对象中加载数据,比如有这么个需求,页面显示中有两个表 ...

  9. 【转】JavaScript中的对象复制(Object Clone)

    JavaScript中并没有直接提供对象复制(Object Clone)的方法.因此下面的代码中改变对象b的时候,也就改变了对象a. a = {k1:1, k2:2, k3:3}; b = a; b. ...

随机推荐

  1. redis 发布订阅(pub/sub )

  2. haproxy的代理中继用法

    背景: 现有: 一台baidu/ali/tecent云服务器A(地址为a.a.a.a); 一台VPS B(地址为b.b.b.b), B中搭建有ss,监听端口为8000. 需求: 一:使用A做跳板机访问 ...

  3. Sed的查,删,增,改

    sed的查,删,增,改 1.sed的查找 2.sed的删除 3.sed的上下左右增加文件内容 4.sed的改

  4. Codeforces 343D 线段树

    题意:给你一颗以点1为根的数,有两种操作,一种是把x及其子树的所有点都灌满水,一种是把x及其所有祖先都放空水,一种是询问,问某个点里有没有水? 思路:看网上大多数是树剖,但实际上5e5的数据树剖还是有 ...

  5. web.xml中配置——加载spring容器

    <context-param> <param-name>contextConfigLocation</param-name> <param-value> ...

  6. element 点击切换按钮的颜色

    1.html <el-button-group label="时间"> <el-button @click="seeHour" :type=& ...

  7. 利用Python批量重命名一系列文件名杂乱的文件

    假设目录下面有这样一系列命令杂乱的文件: OPENFOAM -TRAINING- PART- #1.pdf OPENFOAM - TRAINING- PART- #2.pdf OPENFOAM- TR ...

  8. Redis中存储对象区别

    1.最常用的是String结构,key和value都是字符串类型: 2.哈希:比较是用于对对象的操作: 3.List:按照插入数据顺序保存,value是可以重复的,底层是双向链表: 4.集合:是Str ...

  9. Linux环境进程间通信----信号与管道

    一.信号: 信号主要用来通知进程异步事件的发生.可以使用“kill -l ”命令来显示系统中的信号.进程可以忽略大部分信号,但是有两个是不能忽略的: (1)SIGSTOP:这个信号将中断进程的执行. ...

  10. delphi基础篇之数据类型之三:3.结构类型(Struct)

    3.结构类型(Struct) 结构类型在内存中存储一组相关的数据项,而不是像简单数据类型那样单一的数值.结构数据类型包括:集合类型.数组类型.记录类型.文件类型.类类型.类引用类型和接口类型等.