// 切分list位多个固定长度的list集合(下面是用10条数据为一组进行切分)
public static void main(String[] args) {
// 测试数据
List myList = new ArrayList();
myList.add(1);
myList.add(2);
myList.add(3);
myList.add(4);
myList.add(5);
myList.add(6);
myList.add(7);
myList.add(8);
myList.add(9);
myList.add(10);
myList.add(11);
// 对myList集合进行分组
int listSize = myList.size();
int toIndex = 10; // 以几个为一组,进行分组
Map map = new HashMap(); // 用Map保存分组后的数据
int keyToken = 0; // Map的key(从0开始)
for (int i = 0; i < listSize; i += toIndex) { // i=0; 0<10; i=10+0
if (i + toIndex > listSize) { toIndex = listSize - i; } // 作用为toIndex最后没有100条数据则剩余几条newList中就装几条
List newList = myList.subList(i, i + toIndex); // subList()截取并返回截取的部分。subList(0, 0+10)取得的是下标为0到9的元素,不包含下标为10的元素
map.put(keyToken, newList);
keyToken ++;
}
System.out.println("一共切分了" + map.size() + "个list"); // 一共切分了2个list
// 遍历分好组的数据
Set<Map.Entry<Integer, List>> entries = map.entrySet();
for (Map.Entry entry : entries) {
Object key = entry.getKey();
System.out.println("key=" + key);
Object value = entry.getValue();
System.out.println("value=" + value);
}
// key=0
// value=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// key=1
// value=[11]
}
// 封装成一个分组方法
private Map spiltList(List<ViolationQueryDo> list, int toIndex) {
int listSize = list.size();
Map map = new HashMap();
int keyToken = 0;
for (int i = 0; i < listSize; i += toIndex) {
if (i + toIndex > listSize) { toIndex = listSize - i; }
List newList = list.subList(i, i + toIndex);
map.put(keyToken, newList);
keyToken ++;
}
return map;
}
把list集合中的数据按照一定数量分组
于 2022-03-17 10:53:08 首次发布