my set
sorted, , not.
here example:
public class setofinteger { public static void main(string[] args) { random rand = new random(47); set<integer> intset = new hashset<>(); (int = 0; < 10; i++) { int j = rand.nextint(30); system.out.print(j + " "); intset.add(j); } system.out.println(); system.out.println(intset); } }
the result shows set
not sorted.
8 5 13 11 1 29 28 20 12 7 [1, 20, 5, 7, 8, 11, 12, 29, 28, 13]
when change termination expression i < 20
in statement, result shows set
become sorted.
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]
it strange, it? don't know how explain it, , need help, thank much.
a hashset not guarantee sorted iteration, under specific circumstances internal data structure may act bucket sort.
specifically, integer keys in range [0,65535] , table size greater largest key, index of bucket key stored in equal key itself, , since iterator iterates in bucket order, emits elements in sorted order.
Comments
Post a Comment