Я бы рекомендовал не использовать массивы, используя пользовательский класс:
class Order {
String username;
String order;
}
Я опустил геттеры, сеттеры, модификаторы и конструкторы, так как эти 2 поля являются основным компонентом этого класса.
После этого у вас может быть 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())
));