JavaにおけるListコレクションのセグメント化処理
1652 ワード
コア処理:List.subList(int start,int end)を使用する;セグメントの切り取りを行います.
上には10個のセグメントがあり、コンソール出力:
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List list=new ArrayList();
for (int i = 0; i < 99; i++) {
list.add(i);
}
int perCount=10,index=0;
int times=list.size()/perCount;
do {
List listTemp=null;
if(list.size()>=perCount){
listTemp=list.subList(0, perCount);// listTemp
}else{
listTemp=list.subList(0, list.size());// listTemp
}
//
String result="";
for (int i = 0; i < listTemp.size(); i++) {
result+=listTemp.get(i)+",";
}
System.out.println(" "+index+" :>>"+result);
list.removeAll(listTemp);
System.out.println(" :>>"+list.size());
index++;
}
while (index<=times);
}
}
上には10個のセグメントがあり、コンソール出力:
0 :>>0,1,2,3,4,5,6,7,8,9,
:>>89
1 :>>10,11,12,13,14,15,16,17,18,19,
:>>79
2 :>>20,21,22,23,24,25,26,27,28,29,
:>>69
3 :>>30,31,32,33,34,35,36,37,38,39,
:>>59
4 :>>40,41,42,43,44,45,46,47,48,49,
:>>49
5 :>>50,51,52,53,54,55,56,57,58,59,
:>>39
6 :>>60,61,62,63,64,65,66,67,68,69,
:>>29
7 :>>70,71,72,73,74,75,76,77,78,79,
:>>19
8 :>>80,81,82,83,84,85,86,87,88,89,
:>>9
9 :>>90,91,92,93,94,95,96,97,98,
:>>0