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集合?的主要内容,如果未能解决你的问题,请参考以下文章

将列表划分为n个大小的列表的有效方法

java实现 整数拆分 希望有个算法

c#里面arraylist中有792*5个数,我需要每5个数为一组取出,并且绑定到datagridview中去,如何写?求代码

Java ArrayList clear() 函数

Java:如何按大小对多个 ArrayList 进行排序?

如何将对象类转换为 arrayList ? java [重复]