私はいくつかの情報を得たいと思う興味深い問題に遭遇しました。
(いくつかの事前定義された条件に基づいて)一連の数値を生成するプログラムがあります。各セットには最大6つの数値が含まれ、1から100の範囲の整数で一意である必要はありません。
作成されたすべてのセットをなんとかして保存し、まったく同じ番号(順序は関係ありません)の特定のセットが以前に生成されたかどうかをすばやく確認できるようにします。
この場合、プログラムが停止する前に最大100kセットが保存される可能性があるため、速度が優先されます(おそらくそれ以上ですが、ほとんどの場合はそれ以下です)。どのデータ構造を使用すべきか、この問題にどのように取り組むべきかについて、誰かが何かアドバイスはありますか?
私が現在持っているのはこれです:
文字列のHashSetに保存する前に、各セットを並べ替えます。文字列は、区切り文字が付いた、並べ替えられたセット内の各数値です。
たとえば、セット{4、23、67、67、71}は、文字列「4-23-67-67-71」としてエンコードされ、HashSetに格納されます。次に、生成された新しいセットごとに、それを並べ替え、エンコードして、HashSetに存在するかどうかを確認します。
ありがとう!