JAVA操作List集合,过滤属性,分组,判断属性是否有某个值

实体类

public class PersonData  {
	private String id;
	private String type;
	private String name;
	private int age;
	//set,get省略...
}

List操作

package com.test;

/**
 * @author TANGSHUAI
 * @date 2020年12月8日 下午4:30:36
 * 
 */

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

public class Test10 {
	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(5);
		list.add(p3);

		PersonData p4 = new PersonData();
		p4.setId("4");
		p4.setName("马六");
		p4.setType("访客");
		p4.setAge(6);
		list.add(p4);

		// 跟据某个属性分组
		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.getAge()==5).collect(Collectors.toList());
		System.out.println(list);
		
		Integer a=2;
		System.out.println(a.equals(2));
		// 判断一组对象里面有没有属性值是某个值
		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);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值