从一个list里面一次取出几个对象,放进一个临时list里面

[size=large][color=blue]刚开始的时候想用list的一个方法,list.subList(int first,int end)
结果发现抛出java.util.ConcurrentModificationException异常
因为在迭代的时候不允许对list进行修改


故后来采用如下算法:[/color][/size]
package com.wangf.test;

import java.util.ArrayList;
import java.util.List;

public class TestList {

@SuppressWarnings("unchecked")
public static void main(String[] args) {
//表示一次取出几个
int size = 11;
List list = new ArrayList();
int i = 0;
while(i < 10) {
list.add("wangf:" + i);
i++;
}

//表示一共需要取几次
int count = (list.size() % size == 0 ? list.size() / size : list.size() / size + 1);

for(int j = 0; j < count; j++) {
List tmpList= new ArrayList();
if(list.size() >= size) {//如果list里面剩下的还大于等于需要取出的
for(int n = 0; n < size; n++) {//则重复执行size次下面的两句代码
tmpList.add(list.get(0));
list.remove(0);
}
} else {//list里面剩下的已经小于需要去取出的
int lastSize = list.size();
for(int n = 0; n < lastSize; n++) {//则重复执行lastSize()次下面的两句代码
tmpList.add(list.get(0));
list.remove(0);
}
}

for(int k = 0; k < tmpList.size(); k++) {
System.out.println(tmpList.get(k));
}
System.out.println("=========================");
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值