package com.example.demo;
import lombok.Data;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListGroupUtil {
public static <T> List<List<T>> groupListByQty(List<T> list, int qty) {
if (list == null || list.size() == 0 || qty <= 0) {
return Collections.EMPTY_LIST;
}
List<List<T>> result = new ArrayList<>();
int count = 0;
while (count < list.size()) {
result.add(new ArrayList<>(list.subList(count, Math.min((count + qty), list.size()))));
count += qty;
}
return result;
}
@Test
public void testGroup() {
List<User> sum = new ArrayList<>();
for (int i = 0; i < 150005; i++) {
User user = new User();
user.setName("name_" + i);
user.setAge(i);
sum.add(user);
}
long start = System.currentTimeMillis();
List<List<User>> list = groupListByQty(sum, 10000);
long end = System.currentTimeMillis();
System.out.println("耗时:" + (end - start));
for (List<User> sheetData : list) {
System.out.println(sheetData.size());
}
}
@Data
class User {
private String name;
private Integer age;
}
}
Java List 按指定数量分组
最新推荐文章于 2025-03-06 14:43:11 发布