私のSet
はソートされていることがあります。ここHashSetはソートジョブを内部で実行しますか?
は一例であり:
public class SetOfInteger {
public static void main(String[] args) {
Random rand = new Random(47);
Set<Integer> intset = new HashSet<>();
for (int i = 0; i < 10; i++) {
int j = rand.nextInt(30);
System.out.print(j + " ");
intset.add(j);
}
System.out.println();
System.out.println(intset);
}
}
結果は、set
がソートされていないことを示しています。
8 5 13 11 1 29 28 20 12 7
[1, 20, 5, 7, 8, 11, 12, 29, 28, 13]
私は声明の中でi < 20
に終了式を変更すると、結果はset
がソートになっていることを示しています。
8 5 13 11 1 29 28 20 12 7 18 18 21 19 29 28 28 1 20 28
[1, 5, 7, 8, 11, 12, 13, 19, 18, 21, 20, 29, 28]
これは奇妙なのですか?私はそれを説明する方法が分からないので、助けが必要です。ありがとうございます。
は、画像の代わりにコードを貼り付けます。 – Andrew
'HashSet'は、その要素の' hashCode'によって順序付けられています。ソートされる可能性は非常に低いです。 'LinkedHashSet'は挿入順序を保持し、**は' TreeSet'を順序付けしたものです。 –
いいえ、ここに文章を載せてはいけません。テキストを投稿する。 – EJP