public static void main(String[] args) {
List<Data> list = Lists.newArrayList(d("a", 1), d("b", 2), d("a", 3));
System.out.println("src : "+list);
val mm = list.stream().collect(groupingBy(Data::getKey));
System.out.println("mm : "+mm);
System.out.println("mm.a : "+mm.get("a"));
System.out.println("mm.b : "+mm.get("b"));
System.out.println("mm.keys : "+mm.keySet());
System.out.println("mm.values : "+mm.values());
}
@AllArgsConstructor
@ToString
@Getter
static class Data {
String key;
long qty;
public String toString() {
return key+"-"+qty;
}
}
private static Data d(String vendorId, int qty) {
return new Data(vendorId, qty);
}
src : [a-1, b-2, a-3]
mm : {a=[a-1, a-3], b=[b-2]}
mm.a : [a-1, a-3]
mm.b : [b-2]
mm.keys : [a, b]
mm.values : [[a-1, a-3], [b-2]]