Java:数组列表的二维数组?

标签 java arrays arraylist

我正在开发一个数独求解程序,我需要一个数组列表来保存 9x9 板上每个方格的数字 1 到 9。这些数组列表中的每一个都对应于可以进入该方格的可能数字,如果数字不能进入该方格,则将其从列表中删除。

我希望能够提取当前正在处理的正方形的数组列表,例如,如果我想从与正方形 (3,5) 相对应的数组列表中删除数字 7

arrayOfLists[3][5].remove(Integer.valueOf(7));

但是我不知道该怎么做。当我尝试创建数组时,我在声明数组列表数组的行上收到此错误

Cannot create a generic array of ArrayList

这是我的代码:

    //create arraylist
    ArrayList<Integer> nums = new ArrayList<Integer>();

    //fill arraylist with numbers 1-9
    for (int i = 1; i < 10; i++) {
        nums.add(i);
    }

    //create 9x9 array of arraylists
    ArrayList<Integer>[][] array = new ArrayList<Integer>[9][9];

    //fill each element of array with arraylist of numbers 1-9
    for(int i = 0; i<9; i++){
        for(int j = 0; j<9; j++){
            array[i][j] = nums;
        }       
    }

}

我这样做是否错误,或者是否无法创建数组列表数组?如果不可能的话我该怎么办?

最佳答案

每当我看到列表列表时,警钟就会响起。您真正想要这样的东西的情况确实很少见,而这不是其中之一。

你有一个固定的棋盘,由 9 个固定的方格、列和行组成,每个位置可能取数字 1-9。

对所有这些概念使用数组,因为它们的大小是固定的,并且您需要直接访问每个元素 - 集合没有任何好处,而且会成为障碍。使用逻辑(可能是集合)来确保数字在每个区域中仅使用一次。

关于Java:数组列表的二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18413571/

相关文章:

java - 使用 Graphics2D 贝塞尔曲线在单一形状中绘制多条路径

java - 映射时向 Orika MappingContext 添加外部数据

sql - PostgreSQL 根据国家表解析数组中的国家

java - 尝试为数组中的按钮指定颜色时数组中出现空点错误

java - 如何从 DocumentListener 获取添加、删除或更改的字符?

java:多维泛型数组创建

arrays - Perl 语法和可读性——在数组引用中查找元素

java - 对一个 ArrayList 使用 add() 如何影响另一个 ArrayList 的大小?

java - 如何创建一个方法,其功能是显示 ArrayList 对象的内容?

java - 如何在不返回 size = 0 的情况下获取 ArrayList 的值?