2

私は数独ソルバーの作成に取り組んでおり、グリッドを int の arraylist の arraylist として保存したいと考えています...各スポットには、可能なすべての数値 (または確定値) の int の arraylist があります。

ArrayList<ArrayList<int>> sudoku_board = new ArrayList <ArrayList<int>>();

Javaは、intで「トークンの後に期待される次元」というエラーをスローしています。

4

3 に答える 3

10

ジェネリック型パラメーターには、プリミティブ型ではなく参照型が必要です。使用する

List<ArrayList<Integer>> sudoku_board = new ArrayList <ArrayList<Integer>>();

また、インターフェイスにコーディングするときは、参照型としてインターフェイスを使用します。この場合はList. genericsの共分散がないため、generics 内に表示されるものはすべて実装型のままにする必要があります。

@assylias コメントから、より一般的なタイプのリストは

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

これにより、後でリファクタリングが必要になった場合に追加されるList以外の実装タイプが可能になります。ArrayList

于 2013-05-09T13:52:00.857 に答える
3

Integer代わりにラッパー クラスを使用してくださいprimitive

ArrayListprimitiveは type として許可されませんargument

List<ArrayList<Integer>> list= new ArrayList <ArrayList<Integer>>();
于 2013-05-09T13:53:12.083 に答える
2

Arraylist は、プリミティブではなくオブジェクトを格納するために使用されるため、それに応じて署名を変更してください。

于 2013-05-09T13:53:24.120 に答える