Java 对结果列表 List 分组
需求
还款计划移动端接口需要对返回的列表做处理,按照期数进行分组。
实现
百度 Java 列表分组
得到一个 AI 生成的例子
import java.util.*;
import java.util.stream.*;
class Item {
private String category;
private String name;
public Item(String category, String name) {
this.category = category;
this.name = name;
}
public String getCategory() {
return category;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Item{category='" + category + "', name='" + name + "'}";
}
}
public class GroupListExample {
public static void main(String[] args) {
List<Item> items = Arrays.asList(
new Item("electronics", "television"),
new Item("electronics", "computer"),
new Item("books", "novel"),
new Item("books", "dictionary")
);
Map<String, List<Item>> groupedItems = items.stream()
.collect(Collectors.groupingBy(Item::getCategory));
groupedItems.forEach((category, itemsInCategory) -> {
System.out.println(category + ":");
itemsInCategory.forEach(System.out::println);
});
}
}
使用 Java 8 的 Stream API 来对列表进行分组
定义了一个名为 Item 的类,并创建了一个 Item 对象的列表。然后使用 Stream 的 collect 方法和 groupingBy 收集器来根据 Item 的 category 属性对列表进行分组,并打印出分组后的结果。
实际代码实现:
Map<Integer, List<OrderRepayPlan>> billIdGroupList = orderRepayPlanList.stream().collect(Collectors.groupingBy(OrderRepayPlan::getBillId));
PS:百度到一个Java 1.8 List集合排序、去重、分组、过滤、合并、截取操作,几乎覆盖了常见的对 List 结果集所有操作。