import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Item> items = Arrays.asList(
new Item("A", 1),
new Item("A", 2),
new Item("B", 3),
new Item("B", 4)
);
Map<String, Item> result = items.stream()
.collect(Collectors.groupingBy(
Item::getKey,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.get(0) // 这里取第一个对象
)
));
result.forEach((key, item) -> System.out.println(key + ": " + item));
}
}
class Item {
private String key;
private int value;
public Item(String key, int value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public int getValue() {
return value;
}
@Override
public String toString() {
return "Item{" + "key='" + key + '\'' + ", value=" + value + '}';
}
}