Назад к вопросам
Junior — Middle
64
Как выполнить группировку данных в таблице на основе заданного условия?
Ответ от нейросети
sobes.tech AI
В Java для группировки данных в таблице (например, в коллекции объектов) можно использовать Stream API с методом collect и группирующими коллекторами из класса Collectors.
Пример: сгруппировать список объектов по какому-то полю (например, по категории):
import java.util.*;
import java.util.stream.*;
class Item {
String category;
int value;
Item(String category, int value) {
this.category = category;
this.value = value;
}
public String getCategory() {
return category;
}
}
public class GroupingExample {
public static void main(String[] args) {
List<Item> items = Arrays.asList(
new Item("A", 10),
new Item("B", 20),
new Item("A", 30),
new Item("B", 40),
new Item("C", 50)
);
Map<String, List<Item>> grouped = items.stream()
.collect(Collectors.groupingBy(Item::getCategory));
grouped.forEach((category, list) -> {
System.out.println(category + ": " + list.size() + " items");
});
}
}
Если нужно группировать по условию, например, по значению поля, можно использовать лямбда-выражение в groupingBy:
Map<String, List<Item>> groupedByCondition = items.stream()
.collect(Collectors.groupingBy(item -> item.value > 25 ? "High" : "Low"));
Таким образом, группировка выполняется по заданному условию, определяющему ключ группировки.