针对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);
}
}
针对list<object>中的对象数据的一些简单处理的更多相关文章
- php中json对象数据的输出转化
php中json对象数据的输出转化 public function get_my_now_citys(){ $datas=$this->_post('datas'); //前台js脚本传递给后端 ...
- Ajax请求php返回json对象数据中包含有数字索引和字符串索引,在for in循环中取出数据的顺序问题
//php中的数组数据格式 Array ( [all] => Array ( [title] => ALL [room_promotion_id] => all ) [best_av ...
- iOS中归档对象的创建,数据写入与读取
归档(archiving)是指另一种形式的序列化,但它是任何对象都可以实现的更常规的模型.专门编写用于保存数据的任何模型对象都应该支持归档.比属性列表多了很良好的伸缩性,因为无论添加多少对象,将这些对 ...
- Django中更新多个对象数据与删除对象的方法
更新多个对象 例如说我们现在想要将Apress Publisher的名称由原来的”Apress”更改为”Apress Publishing”.若使用save()方法,如: ? 1 2 3 >&g ...
- Object中的方法以及对象相等的判定
看图说话 Object有以下几个方法 getClass() final类型,主要是用来获得运行时的类型 hashCode() 返回该对象的哈希码值,方法是为了提高哈希表(例如 java.util.Ha ...
- PHP中的PDO数据对象
PDO: PHP Data Object:php的数据对象.pdo是数据库操作工具类!1,它能操作很多种数据库,比如mysql,oracle,sybase....2,它具有操作数据库的更多的功能,比如 ...
- APEX:对object中数据进行简单处理?
在Salesforce中,常常要对各种数据进行处理,已满足业务逻辑.本篇文章会介绍如何实现从object获取数据,然后将取得的数据进行一系列简单处理. 第一步:SongName__c 是一个新建的ob ...
- Flexigrid从对象中加载数据
(有问题,在找…………) Flexigrid是用来动态加载数据的一种比较好(老)的Jquery表插件,然后有些时候,我们需要其从本地或者jQuery对象中加载数据,比如有这么个需求,页面显示中有两个表 ...
- 【转】JavaScript中的对象复制(Object Clone)
JavaScript中并没有直接提供对象复制(Object Clone)的方法.因此下面的代码中改变对象b的时候,也就改变了对象a. a = {k1:1, k2:2, k3:3}; b = a; b. ...
随机推荐
- Java的安全性如何理解
Java取消了强大但又危险的指针,而代之以引用.由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占 ...
- jsp service bean
//在jsp中使用后台service中方法需要在jsp页面引入service bean 1 <%@page import="com..entity.Users"%> & ...
- js正则删除字符串中的部分内容
// 例如 let a = `(ID)444` a.replace(/\(ID\)/ig, '') // 结果 "444"
- INNODB存储引擎之缓冲池
以下的资料总结自:官方文档和<MySQL技术内幕-INNODB存储引擎>一书. 对INNODB存储引擎缓冲池的那一段描述来自博文:http://www.ywnds.com/?p=9886说 ...
- 微信小程序 在使用wx.request时显示加载中
微信小程序中,向后台请求数据是,通常想给用户提示正在加载中,如下图: 我们可以用wx.showLoading(OBJECT),当请求服务器的地方多了,怎么才能不每次都要去调用函数,我们只要对wx.re ...
- Golang 标准库提供的Log(一)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://gotaly.blog.51cto.com/8861157/1405754 G ...
- yum设置代理
echo "proxy=http://[proxy_url]:8080" >> /etc/yum.conf
- P2216 [HAOI2007]理想的正方形 (单调队列)
题目链接:P2216 [HAOI2007]理想的正方形 题目描述 有一个 \(a\times b\)的整数组成的矩阵,现请你从中找出一个 \(n\times n\)的正方形区域,使得该区域所有数中的最 ...
- leetcode 1041——困于环中的机器人
描述: 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以接受下列三条指令之一: "G":直走 1 个单位 "L":左转 90 度 &quo ...
- node.js 中的 fs (文件)模块
记录 fs 模块的方法及使用 1. fs.stat 获取文件大小,创建时间等信息 // 引入 fs 模块 const fs = require('fs'); fs.stat('01.fs.js', ( ...