¿Cómo iterar sobre un conjunto/HashSet sin un iterador?

Resuelto user1621988 asked hace 12 años • 0 respuestas

¿ Cómo puedo iterar sobre a Set/ HashSetsin lo siguiente?

Iterator iter = set.iterator();
while (iter.hasNext()) {
    System.out.println(iter.next());
}
user1621988 avatar Sep 17 '12 15:09 user1621988
Aceptado

Puede utilizar un bucle for mejorado :

Set<String> set = new HashSet<String>();

//populate set

for (String s : set) {
    System.out.println(s);
}

O con Java 8:

set.forEach(System.out::println);
assylias avatar Sep 17 '2012 08:09 assylias

Hay al menos seis formas adicionales de iterar sobre un conjunto. Conozco los siguientes:

Método 1

// Obsolete Collection
Enumeration e = new Vector(movies).elements();
while (e.hasMoreElements()) {
  System.out.println(e.nextElement());
}

Método 2

for (String movie : movies) {
  System.out.println(movie);
}

Método 3

String[] movieArray = movies.toArray(new String[movies.size()]);
for (int i = 0; i < movieArray.length; i++) {
  System.out.println(movieArray[i]);
}

Método 4

// Supported in Java 8 and above
movies.stream().forEach((movie) -> {
  System.out.println(movie);
});

Método 5

// Supported in Java 8 and above
movies.stream().forEach(movie -> System.out.println(movie));

Método 6

// Supported in Java 8 and above
movies.stream().forEach(System.out::println);

Este es el HashSetque utilicé para mis ejemplos:

Set<String> movies = new HashSet<>();
movies.add("Avatar");
movies.add("The Lord of the Rings");
movies.add("Titanic");
Benny Code avatar Aug 25 '2016 23:08 Benny Code