逻辑代码如下:查询到的是一个list集合,根据workerId,转化成 以workerId为Key,以具有同样workerId的List作为value 的map
List
Map
if (details!=null&& details.size()>0){
detailMap = details.stream().collect(Collectors.groupingBy(e -> e.getWorkerId()));
}
转载https://blog.csdn.net/weixin_48872249/article/details/111789489
一. 准备阶段
1.准备好一个实体类
public class Person{
private Integer age;
private String name;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
2.准备好一个集合
ArrayList
for (int i = 1; i <= 100; i++) {
Person person = new Person();
person.setAge(i);
String l = i % 2 == 0 ? "偶数" : "奇数";
person.setName(l+"-"+i);
people.add(person);
}
这里我循环插入了一百个对象,对象的age直接赋值为每次循环的i值,name值则为当前i是否为偶数再加上“-”和当前i的值。
二. 实操阶段
操作一:对person的age属性进行操作,将根据age的奇偶性进行分组
Map
Integer age = l.getAge();
return age % 2 == 0;
}));
好了,分完组后,他会返回一个Map集合,key值是分组的所依据的值,value就是分好组后的集合,接下来让我看看结果
List
List
personList1.forEach(System.out::println);
System.out.println("===============");
personList2.forEach(System.out::println);
Person{age=2, name='偶数-2'}
Person{age=4, name='偶数-4'}
Person{age=6, name='偶数-6'}
Person{age=8, name='偶数-8'}
...
===============
Person{age=1, name='奇数-1'}
Person{age=3, name='奇数-3'}
Person{age=5, name='奇数-5'}
Person{age=7, name='奇数-7'}
Person{age=9, name='奇数-9'}
...
这里由于每个集合中都有50个对象,所以我就挑了前面几条进行展示。
操作二:在name中获得“-”后的数字,并根据其对5取余的值进行分组
Map
String name = l.getName();
String[] split = name.split("-");
int parseInt = Integer.parseInt(split[1]);
return parseInt % 5;
}));
Person{age=5, name='奇数-5'}
Person{age=10, name='偶数-10'}
Person{age=15, name='奇数-15'}
Person{age=20, name='偶数-20'}
...
============
Person{age=1, name='奇数-1'}
Person{age=6, name='偶数-6'}
Person{age=11, name='奇数-11'}
Person{age=16, name='偶数-16'}
============
Person{age=2, name='偶数-2'}
Person{age=7, name='奇数-7'}
Person{age=12, name='偶数-12'}
Person{age=17, name='奇数-17'}
...
============
Person{age=3, name='奇数-3'}
Person{age=8, name='偶数-8'}
Person{age=13, name='奇数-13'}
Person{age=18, name='偶数-18'}
...
============
Person{age=4, name='偶数-4'}
Person{age=9, name='奇数-9'}
Person{age=14, name='偶数-14'}
Person{age=19, name='奇数-19'}
...
原文链接:https://blog.csdn.net/Man20161217/article/details/82657698
1,跟据某个属性分组OfficeId
Map
2,根据某个属性分组OfficeId,汇总某个属性Money
Map
3,根据某个属性添加条件过滤数据,
list = list.stream().filter(u -> !u.getAmount().equals("0.00")).collect(Collectors.toList());
4,判断一组对象里面有没有属性值是某个值
List