I suggest you check how many of those techniques use an Iterator or a Spliterator behind the scenes. I think you will find the only one is that you marked as obsolete, and Enumeration is a forerunner of Iterator, so I think you will have to regard them all as using an iterator with a small i. Does No 4 differ from No 5? You seem to have missed:-
All of those methods use an iterator, even the Vector approach (take a look at the Vector(Collection) constructor documentation).
Even if a collection allows you to access its elements without using an iterator, there is no good way to iterate over all of them without using an iterator. Just stick with iterators.
If your question actually was "Which is the best way to iterate over a set without calling the iterator() method directly?" then I would use either of the following approaches, depending on whether you need ordered traversal, transformation, concurrency or side-effects.
Simple ordered traversal:
Ordered traversal with transformation 1:
Ordered traversal with transformation 2:
Which of the two ordered traversals with transformation to prefer is just a matter of taste.