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())
));
添加回答
举报