我有List
类型的Integer
(ArrayList< List < Integer > >
),
目前有 177147个整数列表。
我想将它们分成243个不同的集合(每个集合有729个元素列表)
e.g。 Array[0] -> Array[728] go into Collection[0]
...直到
Array[176417] -> Array[177146] goes into Collection[242]
我应该使用ArrayList<ArrayList<List<Integer>>>
吗?
如果是这样,我该如何以这种方式分离这些项目?
答案 0 :(得分:1)
迭代元素并按切片添加到新结构中:
public void run() {
int SLICE = 729;
List<List<Integer>> list2d = new ArrayList<List<Integer>>();
// fill original list
List<List<List<Integer>>> list3d = new ArrayList<List<List<Integer>>>();
List<List<Integer>> partial = new ArrayList<List<Integer>>(SLICE);
for (List<Integer> list : list2d) {
partial.add(list);
if (partial.size() == SLICE) {
list3d.add(partial);
partial = new ArrayList<List<Integer>>(SLICE);
}
}
if (!partial.isEmpty()) {
list3d.add(partial);
}
}
答案 1 :(得分:0)
for(int c = 0; c <= 242; c++)
{
for(int i = 0; i < 729; i++)
{
int position = (c * 729) + i;
Collection[c][i] = Array[position];
}
}
您可能想检查我的数学位置公式,但这个想法很合理。