5

以下に示すコードを実行すると、出力は[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));
4

4 に答える 4

1

クラスは、HashSetデータを入力した順序を保証しません。

に入れず続行するとList、値を追加する順序が得られます。HashSetList

LinkedHashSet挿入順序を維持するために使用できます。

を並べ替えたい場合はList、 を使用できますCollections.sort()。(追加情報、必要なければ無視してください)

于 2013-06-27T12:22:11.593 に答える
0

ドキュメントから

Java.util.HashSet は、セットの反復順序に関して保証しません。特に、順序が長期的に一定であることを保証するものではありません。

于 2013-06-27T12:19:14.077 に答える