-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. ネストされたループを使用して、整数を出力配列にコピーします。

これをコーディングするつもりはありません。自分でコーディングできる必要があります。そうでない場合は、できるようになる必要があります...自分でやろうとすることによって。


入力と出力の型が異なる場合は、サード パーティのライブラリを使用したより適切なソリューションがあった可能性があります。しかし、あなたが使用しているという事実は、あなた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 に答える