该方法用于平均拆分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
----------------------------------------------------
本文介绍了一种在Java中将List平均拆分成多个子List的方法,并提供了详细的代码示例及运行结果展示。适用于需要对数据进行批量处理或分组操作的场景。
732

被折叠的 条评论
为什么被折叠?



