2

我正在编写一个数独求解器,我希望将网格存储为整数数组列表的数组列表......每个点都有一个包含所有可能数字(或确定值)的整数数组列表。

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

Java 向我抛出一个错误,在整数上说“令牌后预期的尺寸”。

4

3 回答 3

10

泛型类型参数需要引用类型,而不是原始类型。利用

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

此外,在对接口进行编码时,使用接口作为引用类型,在这种情况下为List. 由于泛型的非协变,泛型中出现的所有内容都应保留为实现类型。

从@assylias 评论中,更通用的列表类型是

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

这将允许在以后需要重构时添加List其他实现类型。ArrayList

于 2013-05-09T13:52:00.857 回答
3

改用Integer包装类primitive

ArrayList 不允许primitive作为 type argument

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

Arraylist 用于存储对象而不是原语,因此请相应地更改签名。

于 2013-05-09T13:53:24.120 回答