2

私のJavaプログラムにはいくつかの値があります。これらの値を に保存しましたHashSet。forループで保存しました。ループによって繰り返される値は、セットが形成された後、異なる順序で並べられています。HashSetループから取得するときに、この順序の変更をどのように制限できますか。誰でも私を助けてもらえますか?

4

3 に答える 3

10

セットで挿入順序を維持したい場合は、LinkedHashSetを使用できます。

反復順序が予測可能な Set インターフェースの実装。この実装が HashSet と異なる点は、そのすべてのエントリを実行する二重リンク リストを維持することです。このリンクされたリストは、要素がセットに挿入された順序 (insertion-order) である反復順序を定義します。

または、セットを順序付けしたい場合は、TreeSetを使用できます。

于 2012-08-20T11:52:20.113 に答える
5

javadocsが指定するように、 AHashSetは順不同です。

セットの反復順序については保証されません。特に、順序が長期的に一定であることを保証するものではありません。このクラスは null 要素を許可します。

LinkedHashSet挿入の順序を維持する の使用を検討することをお勧めします。

代替手段は、自然順序に従って順序を保証する や、与えられた場合NavigableSetは などの実装の 1 つを使用することです。TreeSetComparator

于 2012-08-20T11:52:38.723 に答える
3

LinkedHashSet の予測可能な反復順序を使用する

于 2012-08-20T11:53:15.590 に答える