如何从ArrayList <int []>转换为int数组?</int []>

时间:2013-03-28 02:59:14

标签: java arraylist

如何从中转换:

 ArrayList<int[]>

-to -

 int[]

实施例

private ArrayList<int[]> example = new ArrayList<int[]>();

private int[] example;

e.g。 ArrayList({1,2,3},{2,3,4}) to {1,2,3,2,3,4}

2 个答案:

答案 0 :(得分:2)

这个问题的(稍微)棘手的部分是你必须在开始之前弄清楚输出数组需要多大。所以解决方案是:

  1. 循环列表以汇总列表中数组的大小
  2. 分配输出数组
  3. 使用嵌套循环将整数复制到输出数组。
  4. 我不打算为你编码。你应该能够自己编码。如果没有,你需要有能力 ...通过尝试自己做。


    如果输入和输出类型不同,可能会有一个使用第三方库的更简洁的解决方案。但是您使用int[]的事实使您不太可能找到现有的图书馆来帮助您。

答案 1 :(得分:0)

快速食谱上:计算每个数组中的元素数量,创建一个数组来保存所有元素,复制元素:)

import java.util.ArrayList;

// comentarios em pt-br
public class SeuQueVcConsegue {

    public static void main(String[] args) {

        ArrayList<int[]> meusNumerosDaSorte = new ArrayList<int[]>();
        meusNumerosDaSorte.add(new int[]{1,2,3});
        meusNumerosDaSorte.add(new int[]{4,5,6});

        // conta os elementos
        int contaTodosOsElementos = 0;
        for( int[] foo : meusNumerosDaSorte){
            contaTodosOsElementos += foo.length;
        }

        // transfere os elementos
        int[] destinoFinal = new int[contaTodosOsElementos];
        int ponteiro = 0;
        for( int[] foo : meusNumerosDaSorte){
            for( int n : foo){
                destinoFinal[ponteiro] = n;
                ponteiro ++;
            }
        }

        // confere se esta correto :)
        for(int n : destinoFinal){
            System.out.println(n);
        }

    }
}