2016-09-09 7 views
-2

int、文字列&ブーリアンを格納する2次元ArrayListを作成しようとしています。java - "intをArrayListに変換できません"

私は最初のintを入力していますが、赤い波打ちがあり、 "intをArrayListに変換できません"というエラーが発生します。

ArrayList[][] qarray= new ArrayList [10][5]; 

    qarray[0][0]= 1; 

ところで、「intはArrayListに変換できません」という言葉を使って、私はちょうど6つの結果を得ています。

+2

"int、文字列とブール値を格納する2次元のArrayListを作成しようとしています" < - 待って、何?ここでデザイン上の問題がある – fge

+0

@david、これを使用しているものについてもう少し拡張することができれば、より良いデザインでお手伝いできるかもしれません。 – Nio

答えて

0

ArrayListのを助ける方法を示しています] [] qarray = new ArrayList [10] [5];

基本的に、コードは2次元配列リストオブジェクト(50個の配列リストオブジェクト)を作成します。

qarray [0] [0] = 1;

そして、ArrayListオブジェクトを作成する必要があるところで整数を割り当てようとしています。

 qarray[0][0]= new ArrayList(); 

しかし、これはあなたの目的を満たしません。次のコードは、あなたの目標を達成できます。

ArrayList[] qarray = new ArrayList[10]; 
    qarray[0]= new ArrayList(); 
    qarray[0].add(1); 

    qarray[1]= new ArrayList(); 
    qarray[1].add(true); 

    qarray[2]= new ArrayList(); 
    qarray[2].add("hello"); 
0

は次のように試してみてください:

List<Integer> qarray = new ArrayList<>(); 
qarray.add(1); 
+0

多次元配列を探しています。 –

0
ArrayList<Integer> list = new ArrayList<>(); 

list.add(1); 
+0

多次元配列を検索しています。 –

1

エラーが正しいです。

あなたの配列タイプはArrayListです。その配列に配列リストのみを挿入できます。

intを格納する場合は、宣言が必要です。

int[][] qarray= new int [10][5]; 

また、誰かがコメントしたとおり、文字列とブール値をこの配列に保存することはできません。

0

javadocによれば、ArrayListの配列を作成することはできません。代わりに2D配列を使用してください。

とにかく2D ArrayListが必要な場合は、この方法を試してみておく必要があります。

ArrayList<ArrayList<Integer>> listOfLists = new ArrayList<>(); 

ArrayList<Integer> list1 = new ArrayList<>(); 
list1.add(1); 
list1.add(2); 

ArrayList<Integer> list2 = new ArrayList<>(); 
list2.add(5); 

listOfLists.add(list1); 
listOfLists.add(list2); 
0

まず、私はあなたが、配列ではなくArrayListのが必要であると信じています。 2次元配列は次のように作成できます。

int[][] arr = new int [10][10]; 

次の問題は、int型定数1を他の型の変数に代入しようとしたことです。次の例では、

arr [0][0] = 1; 
あなたはint型、文字列やブール値を追加するためにワン
0

は、あなたが

ArrayList<ArrayList<Object>> listOfLists = new ArrayList<ArrayList<Object>>(); 

を使用することができ、配列の要素にint型を割り当てるために、それは[あなた

+0

ジェネリックをObejctとして使用すると、内部にすべてのデータ型を格納できます。 –

0
ArrayList<Integer>[][] list = new ArrayList[10][10]; 
list[0][0] = new ArrayList<>(); 
list[0][0].add(new Integer(10); 

をこのようにしてみてください。

関連する問題