从一个list里头一次取出几个对象,放进一个临时list里面
从一个list里面一次取出几个对象,放进一个临时list里面
刚开始的时候想用list的一个方法,list.subList(int first,int end)
结果发现抛出java.util.ConcurrentModificationException异常
因为在迭代的时候不允许对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("========================="); } } }