map.putAll()将list根据某个将某个id设为key

根据classId进行分组结果是Map<String,List>形式
@Test
public void test5(){
Student student = new Student();
student.setId(1l);
student.setAge(10);
student.setName(“班级1”);
student.setClassId(1);

    Student student1 = new Student();
    student1.setId(2l);
    student1.setAge(11);
    student1.setName("班级1");
    student1.setClassId(1);

    Student student2 = new Student();
    student2.setId(3l);
    student2.setAge(12);
    student2.setName("班级1");
    student2.setClassId(1);


    Student student3 = new Student();
    student3.setId(4l);
    student3.setAge(13);
    student3.setName("班级2");
    student3.setClassId(2);
    List<Student> studentList = Arrays.asList(student, student1, student2, student3);
   // System.out.println(studentList);
    Map<Integer,List<Student>> map = Maps.newHashMap();
    map.putAll(studentList.stream().collect(Collectors.groupingBy(Student::getClassId)));
    System.out.println(map);

}

结果是:
{
1=[Student(id=1, age=10, name=班级1, home=null, classId=1), Student(id=2, age=11, name=班级1, home=null, classId=1), Student(id=3, age=12, name=班级1, home=null, classId=1)],
2=[Student(id=4, age=13, name=班级2, home=null, classId=2)]

}

根据其中某一个id获取Map<String,Object>
@Test
public void test1(){
Student student = new Student();
student.setId(1l);
student.setUserId(11L);
student.setAge(10);
student.setName(“班级1”);
student.setClassId(1);

	Student student1 = new Student();
	student1.setId(2l);
	student1.setUserId(21L);
	student1.setAge(11);
	student1.setName("班级1");
	student1.setClassId(1);

	Student student2 = new Student();
	student2.setId(3l);
	student2.setUserId(31L);
	student2.setAge(12);
	student2.setName("班级1");
	student2.setClassId(1);


	Student student3 = new Student();
	student3.setId(4l);
	student3.setUserId(41L);
	student3.setAge(13);
	student3.setName("班级2");
	student3.setClassId(8);
	List<Student> studentList = Arrays.asList(student, student1, student2, student3);
	Map<Long, Student> collect = studentList.stream().collect(Collectors.toMap(Student::getUserId, a -> a, (k1, k2) -> k1));
	System.out.println(collect);}

结果是
{21=Student{userId=21, name=‘班级1’, age=11}, 41=Student{userId=41, name=‘班级2’, age=13}, 11=Student{userId=11, name=‘班级1’, age=10}, 31=Student{userId=31, name=‘班级1’, age=12}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值