2012-02-13 3 views
0

でArrayListに複数の値を加算し、私はこのようなコードがあったらそう例えば、動的リストに要素を追加したいと思います動的に1,2,3,4,5,6,7などを追加する方法はありますか?あなたのデータ構造を維持したい場合は、は動的にJavaで配列やリストを持つ新しいまだ少しjavaの

List<Integer> ints = new ArrayList<Integer>(); 
ints.add(1); // works with Java 1.5+, inboxing 
ints.add(2); 

あるいは、短い配列で数字をラップ:ヘルプ

+1

私は理解していないです。 int []のリストまたはintのリストを保持しますか? "1,2,3,4,5,6,7を動的に追加する"と言うとき、それらを配列として追加するか、単独で追加することを意味しますか? – mdm

+1

別の配列を追加するか、配列の1つに番号を追加しますか? 'rowList.add(new int [] {1、2、3、4、5、6、7、8});'のように3回実行したのと同じように、前者を実行することができます。配列の長さは作成されると直ちに不変であるため、後者は実行できません。 –

+0

あなたのコードは有効です。 3つのint配列をリストに追加します。個々の値はint配列のリストであるため、そのリストに追加することはできません。あなたが達成しようとしていることを明確にしてください。 – TPete

答えて

2

ための事前のおかげでは、単純に直接番号を格納するためにList<Integer>を使用

rowList.add(newValue(1)); 
我々が持っている

private int[] newValue(int a) { 
    int[] result = new int[1]; 
    result[0] = a; 
    return result; 
} 

E DIT

可変引数およびオートボクシングを使用していくつかのより多くのJava 1.5+魔法、:

private int[] newValue(Integer... values) { 
    int[] result = new int[values.length]; 
    for (int i = 0; i < result.length; i++) 
     result[i] = values[i]; 
    return result 
} 

用途:

List<int[]> rowList = new ArrayList<int[]>(); 

rowList.add(newValues(10, 20, 30)); 
rowList.add(newValues(1,2,3,4,5,6,7)); 
+0

(私があなたが達成したいと思ったことを理解したことを願って)) –

+0

おかしい、私の解決の後、または前に、varargsを導入しましたか? :-)解答のための –

+0

thanx @ Andreas_D – duggu

0

リストあなたに[]新しいint型を追加したい場合最初に作成して記入する必要があります。配列の長さがわからない場合は、配列の長さに応じて動的にスペースを追加する配列を提案します。

この配列を作成したら、引数として渡してください。まっすぐでなければなりません。

0

すべての単一番号を書き出さずに追加する場合は、forループを使用できます。

for(int i = 0; i < [however many you would like]; i++) { 
    ints.add(i); 
} 
0

(あなたはJDK 5持っているとより高い場合varargsを使用して)この効果の何か。

public class ListUtils { 
    public static void add(List<int[]> list, int... args) { 
     if (list != null && args != null) { 
      list.add(args); 
     } 
    } 
} 

さて、あなたは

ListUtils.add(list, 1, 2, 3, 4, 5, 6, 7); 
0

を行うことができます私はあなたが必要なもののわからないが、私は、この例ではあなたを助けることを願っています:

List<Integer> rowList = new ArrayList<Integer>(); 
Collections.addAll(rowList, ArrayUtils.toObject(new int[] { 1, 2, 3 })); 
Collections.addAll(rowList, ArrayUtils.toObject(new int[] { 4, 5, 6 })); 
Collections.addAll(rowList, ArrayUtils.toObject(new int[] { 7, 8 })); 

ArraysUtilsは、Apacheコモンズのクラスでありますプリミティブ配列とオブジェクト配列を扱うのに本当に便利です。

よろしく、 Diodfr

関連する問題