以下に示すコードを実行すると、出力は[50、20、5、40、10、30]です。この順番がわかりませんでした。出力が [10, 5, 20, 30, 40, 50] でないのはなぜですか?
List list = Arrays.asList(10, 5, 10, 20, 30, 40, 50);
System.out.println(new HashSet(list));
以下に示すコードを実行すると、出力は[50、20、5、40、10、30]です。この順番がわかりませんでした。出力が [10, 5, 20, 30, 40, 50] でないのはなぜですか?
List list = Arrays.asList(10, 5, 10, 20, 30, 40, 50);
System.out.println(new HashSet(list));
クラスは、HashSet
データを入力した順序を保証しません。
に入れずに続行するとList
、値を追加する順序が得られます。HashSet
List
LinkedHashSet
挿入順序を維持するために使用できます。
を並べ替えたい場合はList
、 を使用できますCollections.sort()
。(追加情報、必要なければ無視してください)
ドキュメントから
Java.util.HashSet は、セットの反復順序に関して保証しません。特に、順序が長期的に一定であることを保証するものではありません。