public class StreamTest2 {
public static void main ( String[ ] args) {
Person p1 = new Person ( "lxf" , 23 , "中国" , '1' ) ;
Person p2 = new Person ( "lyf" , 23 , "中国" , '1' ) ;
Person p3 = new Person ( "lxf" , 24 , "中国" , '1' ) ;
Person p4 = new Person ( "ljw" , 23 , "中国" , '1' ) ;
Person p5 = new Person ( "lxf" , 25 , "中国" , '1' ) ;
List< Person> persons = new ArrayList ( 5 ) ;
persons. add ( p1) ;
persons. add ( p2) ;
persons. add ( p3) ;
persons. add ( p4) ;
persons. add ( p5) ;
Map< String, List< Person> > personMap = new HashMap < > ( ) ;
personMap = persons. stream ( ) . collect ( Collectors. toMap ( Person: : getName,
( p) - > {
List namePersons = new ArrayList ( ) ;
namePersons. add ( p) ;
return namePersons;
} ,
( List< Person> person1, List< Person> person2) - > {
person1. addAll ( person2) ;
return person1;
}
) ) ;
System. out. println ( personMap) ;
}
}
class Person {
private String name;
private Integer age;
private String country;
private char sex;
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public Integer getAge ( ) {
return age;
}
public void setAge ( Integer age) {
this . age = age;
}
public String getCountry ( ) {
return country;
}
public void setCountry ( String country) {
this . country = country;
}
public char getSex ( ) {
return sex;
}
public void setSex ( char sex) {
this . sex = sex;
}
public Person ( String name, Integer age, String country, char sex) {
this . name = name;
this . age = age;
this . country = country;
this . sex = sex;
}
@Override
public String toString ( ) {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", country='" + country + '\'' +
", sex=" + sex +
'}' ;
}