model属性:
public class Person {
private Integer id;
private String name;
private String sex;
private Integer age;
public Person(Integer id,String name,String sex,Integer age){
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
对象数组直接初始化:
Person persons[] = new Person[]{
new Person(1, "张三", "1", 25),
new Person(2, "李四", "1", 35),
new Person(3, "安红", "2", 22),
new Person(4, "小王", "2", 28)
};
List<Person> list = Arrays.asList(persons);
list以性别分组:
Map<String,List<Person>> map = list.stream().collect(Collectors.groupingBy(Person::getSex));
分组后的key排序:
LinkedHashMap<String,List<Person>> result = new LinkedHashMap<>();
//分组后的key排序
map.entrySet().stream()
.sorted(Map.Entry.<String,List<Person>>comparingByKey().reversed())//reversed()方法倒序 不加为升序
//map无序 so重新装进LinkedHashMap
.forEachOrdered(m -> result.put(m.getKey(), m.getValue()));
result.forEach((key,value)->{
System.out.println(key);
value.forEach(p -> System.out.println(p.getName()));
});