Originally posted by Arjun Reddy: Um.. sorted means 1,2,3,4 etc.. or a,b,c,d etc.. whats ordered?
Ordered means in what order like (First In First Out) or (Last In First Out) or any other way of inserting and retrieving from the Collection. But Set is not ordered, means it does not have any order of the above avtivities. If you get so called sorted output (a,b,c) its just a chance that for you it was like that (to confuse you more)
Originally posted by Deepak Bajoria: I think it all depends on the hash function used by the JVM. Like for e.g if a hashCode() simply returns the ascii value of the letter, the output would be sorted
Not really. First, it depends on how the buckets are implemented. The Set may not map linearly with hashcode. Second, there may not be a one to one mapping between buckets and hashcodes. Two different letter may end up in the same bucket, then it will depend on how each bucket is implemented.
One other point, if something is not sorted or ordered, it doesn't mean that the ordering random. Don't expect iterations through the Set to yield different results -- it may, but it may not. The point is, any ordering is purely coincidental, and the HashSet collection has not been implemented with any ordering.