последний элемент массива печатается первым на итерации - PullRequest
1 голос
/ 08 сентября 2011
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() );
   }
 }
}

Вывод:

Stars
Shadow
Suhail

Почему последний элемент печатается первым?Я ожидал, что результат будет suhail , shadow , stars

Ответы [ 3 ]

6 голосов
/ 08 сентября 2011

HashSet не гарантия любой заказ. Вместо этого используйте LinkedHashSet, чтобы сохранить порядок вставки.

0 голосов
/ 08 сентября 2011

Вы можете изменить HashSet на Arraylist, который является общим типом для списков.

0 голосов
/ 08 сентября 2011

Есть ли причина для использования HashSet, в этом случае ArrayList будет идеальным?

Вам просто нужна итерация?

for (final String string : elements) {
  System.out.println(string);
}
...