该方法用于平均拆分List,方法为:
public class ListSplit { List<List<String>> eList = new ArrayList<List<String>>(); List<String> gList; public List<List<String>> SplitList(List<String> 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<String>(); for (j = xx; j < (size + xx); j++) { gList.add(sList.get(j)); } xx = j; eList.add(gList); } if (size2 != 0) { gList = new ArrayList<String>(); 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<String> myList = new LinkedList<String>(); 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<List<String>> oList = listSplit.SplitList(myList, 3); for(int x = 0;x<oList.size();x++){ System.out.println("---第 "+(x+1)+" 个List,内容:"); for(int y=0;y<oList.get(x).size();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<String> myList = new LinkedList<String>(); 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<List<String>> oList = listSplit.SplitList(myList, 4); for(int x = 0;x<oList.size();x++){ System.out.println("---第 "+(x+1)+" 个List,内容:"); for(int y=0;y<oList.get(x).size();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
----------------------------------------------------