public class MyClass{
private String propertyOne;
private String propertyTwo;
public String getPropertyOne() {
return propertyOne;
}
public String getPropertyTwo() {
return propertyTwo;
}
public MyClass(String propertyOne, String propertyTwo) {
this.propertyOne = propertyOne;
this.propertyTwo = propertyTwo;
}
}
public static void main(String args[]){
List<MyClass> l = new ArrayList<>();
l.add(new MyClass("1","2"));
l.add(new MyClass("1","3"));
l.add(new MyClass("2","5"));
l.add(new MyClass("2","4"));
Map<String, Set<String>> multimap = l.stream()
.collect(Collectors.groupingBy(MyClass::getPropertyOne,
Collectors.mapping(MyClass::getPropertyTwo,
Collectors.toSet())));
System.out.println("x1 = " + multimap);
}
x1=1=[2,3],2=[4,5]