java多字段分组_在Java8中按多个字段名称分组
我到了通过POJO中的某些字段名称对对象进⾏分组的代码。以下是该代码:
public class Temp {
static class Person {
private String name;
private int age;
private long salary;
Person(String name, int age, long salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
@Override
public String toString() {
return String.format("Person{name='%s', age=%d, salary=%d}", name, age, salary);
}
}
public static void main(String[] args) {
Stream people = Stream.of(new Person("Paul", 24, 20000),
new Person("Mark", 30, 30000),
new Person("Will", 28, 28000),
new Person("William", 28, 28000));
分组名称大全
Map> peopleByAge;
peopleByAge = people
.upingBy(p -> p.age, Collectors.mapping((Person p) -> p, toList())));
System.out.println(peopleByAge);
}
}
输出是(正确的):
{24=[Person{name='Paul', age=24, salary=20000}], 28=[Person{name='Will', age=28, salary=28000},
Person{name='William', age=28, salary=28000}], 30=[Person{name='Mark', age=30, salary=30000}]}
但是,如果我想按多个字段分组怎么办?在该POJO中groupingBy()实现equals()⽅法后,我显然可以在该⽅法中传递⼀些POJO,但是是否还有其他选择,例如我可以对给定POJO中的多个字段进⾏分组?
例如,在这⾥,我想按姓名和年龄分组。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论