该方法用于平均拆分List,方法为:
public class ListSplit {
List> eList = new ArrayList>();
List gList;
public List> SplitList(List sList, int num) {
int size = (sList.size()) / num;
int size2 = (sList.size()) % num;
int j = 0;
int xx=0;
for (int i = 0; i < num; i++) {
gList = new ArrayList();
for (j = xx; j < (size + xx); j++) {
gList.add(sList.get(j));
}
xx = j;
eList.add(gList);
}
if (size2 != 0) {
gList = new ArrayList();
for (int y = 1; y < size2 + 1; y++) {
gList.add(sList.get(sList.size() - y));
}
eList.add(gList);
}
return eList;
}
}
1.如果取得的源List大小与指定份数模为0(即源List大小除以指定的份数,没有余数),则情况为:
例如测试方法:
public static void main(String[] args){
ListSplit listSplit = new ListSplit();
LinkedList myList = new LinkedList();
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");
List> oList = listSplit.SplitList(myList, 3);
for(int x = 0;x
System.out.println("---第 "+(x+1)+" 个List,内容:");
for(int y=0;y
System.out.print(oList.get(x).get(y)+" ");
}
System.out.println();
}
}执行结果为:
-----------------------------------------
---第 1 个List,内容:
1 2 3
---第 2 个List,内容:
4 5 6
---第 3 个List,内容:
7 8 9
-------------------------------------------
2.1.如果取得的源List大小与指定份数模不为0(即源List大小除以指定的份数,没有余数),则情况为:
例如测试方法:
public static void main(String[] args){
ListSplit listSplit = new ListSplit();
LinkedList myList = new LinkedList();
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");
List> oList = listSplit.SplitList(myList, 4);
for(int x = 0;x
System.out.println("---第 "+(x+1)+" 个List,内容:");
for(int y=0;y
System.out.print(oList.get(x).get(y)+" ");
}
System.out.println();
}
}
则执行结果为:
---------------------------------------------------
---第 1 个List,内容:
1 2
---第 2 个List,内容:
3 4
---第 3 个List,内容:
5 6
---第 4 个List,内容:
7 8
---第 5 个List,内容:
9
----------------------------------------------------