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

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


故后来采用如下算法:

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("=========================");
		}
	}
}

你可能感兴趣的:(java,算法,J#)