java如何将一个arraylist等量划分为5个新的arraylist集合?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何将一个arraylist等量划分为5个新的arraylist集合?相关的知识,希望对你有一定的参考价值。
java如何将一个arraylist等量划分为5个新的arraylist集合?
我擦,看到问题才写通用方法就有人先回答了。。。给出我的答案。public static void main(String[] args)
List<Integer> l = new ArrayList<Integer>();
for (int i = 0; i < 586; i++)
l.add(i);
Map<Integer, List<Integer>> map = DIVIDE_LIST(l, 5);
for (int i = 0; i < 5; i++)
System.out.println(map.get(i).size());
/**
*
* @param <T>
* @param list
* 拆分的集合
* @param count
* 拆分数
*/
public static <T> Map<Integer, List<T>> DIVIDE_LIST(final List<T> list,
final int count)
final int size = list.size();
final int[] arr = new int[count];
final int avg = size / count;// 平均数
final int addIndex = size - avg * count;// 需要增加1个数量的最大下标
for (int i = 0; i < count; ++i)
arr[i] = i < addIndex ? avg + 1 : avg;
final Map<Integer, List<T>> map = new HashMap<Integer, List<T>>();
int index = 0;
for (int i = 0; i < arr.length; i++)
// 截取集合
map.put(i, list.subList(index, index += arr[i]));
return map;
给出Integer的集合,元素个数586,在main方法里有,
输出结果是 118 117 117 117 117,表示各个集合的个数。 参考技术A ArrayList本身提供了一个subList方法,这个方法可以实现分割,至于等量 这不太好说,而且subList获得的新List也会影响原List追问
获得的新list是不是只是引用变量?处理完后不需要释放?
追答说不上引用吧 都指向相同的内存片段 , java中除了数据库处理、文件流处理之类 其他大部分资源是不需要手动释放的,本回答被提问者采纳 参考技术B import java.util.ArrayList;public class MethodDemo3
private ArrayList arr1;
private ArrayList arr2;
private ArrayList arr3;
private ArrayList arr4;
private ArrayList arr5;
private ArrayList arr;
public MethodDemo3()
arr1 = new ArrayList();
arr2 = new ArrayList();
arr3 = new ArrayList();
arr4 = new ArrayList();
arr5 = new ArrayList();
arr = new ArrayList();
public static void main(String args[])
MethodDemo3 demo = new MethodDemo3();
for(int i = 0; i < 5; i++)
demo.arr.add(i);
demo.split(demo);
public void split(MethodDemo3 demo)
int num = demo.arr.size()/5;
for(int i = 0; i < num; i++)
demo.arr1.add(i);
for(int i = num; i < 2 * num; i++)
demo.arr1.add(i);
循环的次数自己看 不想写了 但是都是手写的
以上是关于java如何将一个arraylist等量划分为5个新的arraylist集合?的主要内容,如果未能解决你的问题,请参考以下文章
c#里面arraylist中有792*5个数,我需要每5个数为一组取出,并且绑定到datagridview中去,如何写?求代码