Hãy xem đoạn mã này.Sự khác biệt giữa nhóm và lập bản đồ trong Bộ sưu tập (Java) là gì?
// group by price, uses 'mapping' to convert List<Item> to Set<String>
Map<BigDecimal, Set<String>> result =
items.stream().collect(
Collectors.groupingBy(Item::getPrice,
Collectors.mapping(Item::getName, Collectors.toSet())
)
);
GroupingBy and Mapping hoán đổi cho nhau? Sự khác biệt của họ là gì?
Đối với tham số thứ ba trong tập hợp(), tôi có được cùng kiểu kết xuất Map nếu tôi sử dụng Collectors.toList() thay vì Collectors.toSet()? Tôi nghe nói rằng toList() là một lựa chọn phổ biến hơn.
'toList()' là “phổ biến hơn” ở chỗ nó là mặc định khi không có bộ thu bổ sung nào được chỉ định, tức là 'Collectors.groupingBy (Item :: getPrice)' có cùng kết quả có 'Collectors.groupingBy (Item :: getPrice, Collectors.toList()) '. – Holger