2011-02-01 6 views
2

私はいくつかの数独ボードに数えられている解の数を求めるアルゴリズムを書こうとしています。すなわち、Javaのセットの配列(?)を作成する

"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四角形の各数値セットごとに1つずつ作成します。

horizontal = new HashSet<Integer>[9]; 

プライベートHashSetの[]は、水平が先に宣言されているが、これは動作しません:私は宣言をしようとしています。正しい宣言は何ですか?また、セットの配列を宣言できないのですか?

+0

[Array of Generic Interface](http://stackoverflow.com/questions/3975054/array-of-generic-interface) – marcog

+0

[Javaの方法:汎用アレイの作成](http: /stackoverflow.com/questions/529085/java-how-to-generic-array-creation) –

答えて

1

問題は型パラメータです。 Javaで汎用配列を作成することはできません。型パラメーターを削除することができますが、動作しますが、チェックされていない操作についての警告が表示されます。

0

セットの配列は、データを格納する奇妙な方法です。 2次元配列または2次元配列の2次元配列は、これをモデル化するはるかに直観的な方法かもしれません。おそらく、カスタムクラス( "SudokuCube")の2次元配列でさえ、配列の配列よりもうまく動作します。 horizontal.get(1);

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

アクセスして、あなたは、通常の配列として、それを同じように扱うことができます。

1

あなたはこれを試してみてください。 @ user599152によると、汎用配列を作成することはできません。だからあなたは別の方法を見つけ出す必要があります。リストがおそらくあなたの最善の策です。

関連する問題