import static java.lang.System.out;
import java.util.*;
class MyClass{
public static void main(String [] args){
Set<Integer> set=new HashSet<>();
for(int i=0;i<1000;i++){
set.add((int)Math.ceil(Math.random()*100));
}
out.print(set);
}
}
- 27
2 Answers
Порядок не гарантирован и порядок гарантированно отсутствует это разные вещи.
Некое подобие порядка присутствует потому, что, хеш значения типа Integer обычно равен самому этому значению. Это не дает гарантии, что значения будут упорядочены, но в некоторых случаях так и будет.
Set<Integer> s1 = new HashSet<>(16);
s1.add(5);
s1.add(3);
s1.add(15);
s1.add(7);
System.out.println(s1); // [3, 5, 7, 15]
а в других - нет
Set<Integer> s2 = new HashSet<>(16);
s2.add(5);
s2.add(20);
s2.add(4);
s2.add(21);
System.out.println(s2); // [20, 4, 5, 21]
(Это вывод на моей системе, на других версиях версиях виртуальной машины он теоретически может отличаться.)
- 10,941
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone {
public static void main (String[] args) throws java.lang.Exception {
Set<Integer> set = new HashSet<>();
for(int i=0; i<100; i++) {
set.add((int)Math.ceil(Math.random()*1000000));
}
System.out.print(set);
}
}
[558089, 631818, 60937, 127496, 483853, 500234, 737048, 580891, 146452, 253461, 609311, 404767, 766225, 198942, 66078, 611113, 383016, 594489, 174643, 233527, 663858, 758578, 966196, 524597, 295233, 377922, 107337, 123468, 28761, 87643, 685652, 338277, 69729, 620136, 523621, 358246, 619114, 365665, 346722, 380527, 145773, 954751, 635515, 996988, 127355, 813682, 198275, 937358, 938893, 517007, 648323, 801670, 880512, 1166, 102286, 679064, 812952, 351634, 516253, 303770, 66463, 361882, 264098, 529071, 327086, 796322, 366773, 230066, 144305, 834489, 776126, 558258, 407226, 648884, 819634, 553654, 35774, 646604, 135112, 865472, 242125, 519880, 130769, 668635, 943324, 756696, 805592, 570576, 124632, 255967, 671956, 386267, 125159, 405742, 735968, 345579, 829177, 930552, 554228, 234748]
- 123,725
1000000на100(как в вопросе), то вывод будет таки упорядоченным. – Yaant Oct 30 '20 at 17:58