繁体   English   中英

在Java中创建集合的数组(?)

[英]Creating an array(?) of Sets in Java

我正在尝试编写一个算法,找出在Sudoku板中给定部分填充的解决方案的数量。 即给定

"1 6 4 0 0 0 0 0 2",
"2 0 0 4 0 3 9 1 0",
"0 0 5 0 8 0 4 0 7",
"0 9 0 0 0 6 5 0 0",
"5 0 0 1 0 2 0 0 8",
"0 0 8 9 0 0 0 3 0",
"8 0 9 0 4 0 2 0 0",
"0 7 3 5 0 9 0 0 1",
"4 0 0 0 0 0 6 7 9"

其中0表示空白点。 我想创建3个单独的集合数组,每个数组在每列,行和3x3平方中。 我正在尝试宣言:

horizontal = new HashSet<Integer>[9];

私有HashSet []水平是先前声明的,但这不起作用。 什么是正确的声明或者我不能声明一个集合数组?

问题是类型参数。 您无法在Java中创建通用数组。 您可以删除类型参数,它将起作用,但您应该收到有关未选中操作的警告。

你可以试试这个:

horizontal = new ArrayList<HashMap<Integer>>();

使用horizontal.get(1);访问它horizontal.get(1); 你可以像对待普通数组一样对待它。 正如@ user599152所说,你无法创建通用数组。 所以你需要弄清楚另一种方式。 列表可能是您最好的选择。

集合数组是存储数据的一种奇怪方式。 2d阵列或2d阵列的2d阵列可能是更直观的建模方式。 可能甚至一些自定义类(“SudokuCube”)的二维数组也比一组数组更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM