This is a two part question:
It makes no guarantees as to the
Ans 1 : Yes Hashset doesn't maintain insertion order but after that if you iterate it you will get same order every time.
Ans 2: iteration result may differ with java versions because it depends on hashcode implementation of that version. but Hashset provides one surety that iteration order will never get change means after insertion of elements if you iterate it every time you will get same order in that java version.