-6

我如何从这个转换:

 ArrayList<int[]>

-至-

 int[]

?

例子

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

private int[] example;

例如ArrayList({1,2,3},{2,3,4}) to {1,2,3,2,3,4}

4

2 回答 2

2

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

  1. 遍历列表以求和列表中数组的大小
  2. 分配输出数组
  3. 使用嵌套循环将整数复制到输出数组。

我不会为你编写这个代码。您应该能够自己编写代码。如果没有,你需要变得有能力......通过尝试自己去做。


如果输入和输出类型不同,那么使用 3rd 方库可能会有更简洁的解决方案。但是您正在使用的事实使您int[]不太可能找到现有的库来帮助您。

于 2013-03-28T03:30:15.710 回答
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);
        }

    }
}
于 2013-03-28T12:16:46.953 回答