これは宿題の質問です。n-QueensJavaの古典的な問題の解決策を書いています。私のプログラムは次のようになりますが、それらを出力する代わりに、すべての正当なクイーン配置のコレクションを返します。クイーンの配置を として表し、その実装として使用してint[]返します。(配置の順序は重要ではないため、ここでは適切です)。Set<int[]>HashSet<int[]>Set
問題は、Java 配列がオーバーライドhashCodeされず、同じ値を持つ異なる配列インスタンスが異なるハッシュ コードを持つことです。
QueensPlacements配列を保持し、でオーバーライドhashCodeするArrays.deepHashCodeラッパークラスを記述できますSet<QueensPlacement>。ただし、冗長でエレガントではないようです。誰でもより良い解決策を提案できますか?