Как выделить из массива объектов класса через Stream API такой Map?
У меня есть класс с несколькими полями, один из которых String percentage. Есть массив с элементами этого класса. Я бы хотел получить Map<String, ArrayList<Item>>. То есть, чтобы в этом Map как ключ была эта строка, а в массиве содержались все объекты, в которых значение поля percentage совпадают с ключом.
Ответы (1 шт):
Автор решения: Backflip
→ Ссылка
@Test
public void test() {
class SomeObject {
public SomeObject(String percentage) {
this.percentage = percentage;
}
private String percentage;
public String getPercentage() {
return percentage;
}
}
SomeObject[] objects = new SomeObject[10];
for (int i = 0; i < 10; i++) {
objects[i] = new SomeObject(Integer.toString(i));
}
Map<String, List<SomeObject>> collection = Arrays.stream(objects)
.collect(groupingBy(SomeObject::getPercentage));
}