2 回答

TA貢獻1783條經驗 獲得超4個贊
我建議不要通過使用自定義類來使用數組:
class Order {
String username;
String order;
}
我省略了 getter、setter、修飾符和構造函數,因為這兩個字段是該類的主要組成部分。
然后,您可以在List<Order> orders其中添加所有訂單,從那里按名稱對它們進行分組相當容易:
Map<String, List<Order>> grouped = orders.stream()
.collect(Collectors.groupingBy(Order::getUsername));
如果你只想要實際的訂單,比如banana,apple等等,你可以使用這個:
Map<String, List<String>> grouped = orders.stream()
.collect(Collectors.groupingBy(
Order::getUsername,
Collectors.mapping(Order::getOrder, Collectors.toList())
));
如果你真的想使用數組作為你的輸入,你也可以使用這個:
Map<String, List<String>> grouped = Arrays.stream(orders)
.collect(Collectors.groupingBy(
a -> a[0],
Collectors.mapping(a -> a[1], Collectors.toList())
));
添加回答
舉報