Java 数组的最后一个元素在迭代时首先打印

Java 数组的最后一个元素在迭代时首先打印,java,iterator,set,Java,Iterator,Set,下面的输出是: import java.util.*; class next { public static void main( String args[] ) { String elements[] = { "Suhail" , "Shadow" , "Stars" }; Set s = new HashSet( Arrays.asList( elements ) ); Iterator i = s.iterator(); while( i.hasNext() ) { Syst

下面的输出是:

import java.util.*;
class next {
public static void main( String args[] ) {
 String elements[] = { "Suhail" , "Shadow" , "Stars" };
 Set s = new HashSet( Arrays.asList( elements ) );
 Iterator i = s.iterator();
   while( i.hasNext() ) {
 System.out.println( i.next() );
   }
 }
}

为什么要先打印最后一个元素?我希望输出是suhail、shadow、stars,HashSet不保证任何顺序。改为使用LinkedHashSet保留插入顺序。

哈希集不保证任何顺序。使用LinkedHashSet来保留插入顺序。

是否有理由使用HashSet,在这种情况下,ArrayList是完美的

你只需要一次迭代吗

Stars
Shadow
Suhail

使用HashSet有什么原因吗?在这种情况下,ArrayList是完美的

你只需要一次迭代吗

Stars
Shadow
Suhail
您可以将哈希集更改为列表的常用类型Arraylist。

您可以将哈希集更改为列表的常用类型Arraylist