私のJavaプログラムにはいくつかの値があります。これらの値を に保存しましたHashSet
。forループで保存しました。ループによって繰り返される値は、セットが形成された後、異なる順序で並べられています。HashSet
ループから取得するときに、この順序の変更をどのように制限できますか。誰でも私を助けてもらえますか?
3 に答える
10
セットで挿入順序を維持したい場合は、LinkedHashSetを使用できます。
反復順序が予測可能な Set インターフェースの実装。この実装が HashSet と異なる点は、そのすべてのエントリを実行する二重リンク リストを維持することです。このリンクされたリストは、要素がセットに挿入された順序 (insertion-order) である反復順序を定義します。
または、セットを順序付けしたい場合は、TreeSetを使用できます。
于 2012-08-20T11:52:20.113 に答える
5
javadocsが指定するように、 AHashSet
は順不同です。
セットの反復順序については保証されません。特に、順序が長期的に一定であることを保証するものではありません。このクラスは null 要素を許可します。
LinkedHashSet
挿入の順序を維持する の使用を検討することをお勧めします。
代替手段は、自然順序に従って順序を保証する や、与えられた場合NavigableSet
は などの実装の 1 つを使用することです。TreeSet
Comparator
于 2012-08-20T11:52:38.723 に答える
3
LinkedHashSet の予測可能な反復順序を使用する
于 2012-08-20T11:53:15.590 に答える