Iteradores em Java

O Java Iterator está sendo ensinado a nós para atender aos nossos requisitos educacionais.

Iteradores Java

Java Iterators são objetos que podem ser usados ​​para percorrer coleções, como ArrayLists e HashSets , a fim de percorrer a coleção de dados.

Looping é tecnicamente chamado de iteração, então “Iterator” é o termo técnico usado para iteração ou looping.

Os iteradores podem ser usados ​​importando-os do pacote java.util.



Obtendo um iterador

Qualquer coleção pode ser iterada usando o método iterator() :

Java Iterator() Example1: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Iterator and LinkedList should be imported
import java.util.LinkedList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Make a collection
LinkedList it_Firms_in_America= new LinkedList();
it_Firms_in_America.add("Geomotiv");
it_Firms_in_America.add("Cyber Infrastructure Inc");
it_Firms_in_America.add("ScienceSoft USA Corporation");
it_Firms_in_America.add("NextBig Technology(NBT)");
// here we create an Iterator
Iterator mrx = it_Firms_in_America.iterator();
// The first item from the LinkedList is printed by using the iterator
System.out.println("First Company name: "+mrx.next());
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Da mesma forma, podemos imprimir o primeiro número ímpar do HashSet fornecido abaixo usando um Iterator:

Java Iterator() Example:2 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Iterator and HashSet should be imported
import java.util.HashSet;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Make a collection
HashSet odd_Numbers= new HashSet();
odd_Numbers.add(1);
odd_Numbers.add(3);
odd_Numbers.add(5);
odd_Numbers.add(7);
odd_Numbers.add(9);
odd_Numbers.add(11);
// An Iterator is declared here
Iterator mrx =odd_Numbers.iterator();
// Using the iterator, the first item from the HashSet is printed
System.out.println("First Odd Number is : "+mrx.next());
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de iterador Java


Percorrendo a Coleção

O Iterator fornece os métodos hasNext() e next() para percorrer uma coleção.

Podemos percorrer as vogais do Arraylist usando os métodos hasnext() e next() do Iterator :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Iterator and ArrayList should be imported
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Here we create a collection of vowels of English Language and store it in an ArrayList
ArrayList vowels= new ArrayList();
vowels.add('A');
vowels.add('E');
vowels.add('I');
vowels.add('O');
vowels.add('U');
// Here we initialized the iterator and name it as ample
Iterator ample =vowels.iterator();
// Using the iterator, to print all the characters from the ArrayList
System.out.println("\nPrint Vowels: \n");
while(ample.hasNext()){ // hasNext methods works ,until the iterator finds the last character of the ArrayList
System.out.println(ample.next());
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Se você deseja percorrer um HashSet de valores booleanos , siga o exemplo fornecido:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Iterator and HashSet is imported from java.util package
import java.util.HashSet;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// We create a Hashset object to store boolean values in it.
HashSet boolean_values= new HashSet();
boolean_values.add(false);
boolean_values.add(true);
boolean_values.add(true);
boolean_values.add(false);
boolean_values.add(true);
// Here we initialized the iterator and name it as ample
Iterator mrx =boolean_values.iterator();
// Using the iterator, to print all the boolean elements from the HashSet
System.out.println("\nPrint boolean_values: \n");
while(mrx.hasNext()){ // hasNext methods works ,until the iterator finds the last value of the HashSet
System.out.println(mrx.next());
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lembrete: os resultados do exemplo acima são true e false , pois o HashSet imprime apenas os valores distintos (Unique). Se você achar este conceito desafiador, consulte “Java HashSet”.


Remove() Itens da Coleção

Um iterador de loop é projetado para facilitar a manipulação de coleções pelas quais ele faz um loop. Durante o loop, os itens podem ser removidos de uma coleção usando um método chamado remove() .

O exemplo a seguir ilustra a remoção de números pares menores ou iguais a 15 usando o método remove() do Iterator:

Java Iterator Remove() Example:1 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.util.HashSet;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
HashSet odd_nums = new HashSet();
odd_nums.add(1);
odd_nums.add(2);
odd_nums.add(3);
odd_nums.add(4);
odd_nums.add(5);
odd_nums.add(6);
odd_nums.add(7);
odd_nums.add(8);
odd_nums.add(9);
odd_nums.add(10);
odd_nums.add(11);
odd_nums.add(12);
odd_nums.add(13);
odd_nums.add(14);
odd_nums.add(15);
Iterator mrx = odd_nums.iterator();
while(mrx.hasNext()) {
Integer ample = mrx.next();
if(ample % 2==0) {
mrx.remove();
}
}
System.out.println(odd_nums);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Da mesma forma, também podemos remover todos os números ímpares até 15 e imprimir os números pares apenas usando o método remove() dentro da condição if:

Java Iterator Remove() Example:2 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.util.HashSet;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
HashSet even_nums = new HashSet();
even_nums.add(1);
even_nums.add(2);
even_nums.add(3);
even_nums.add(4);
even_nums.add(5);
even_nums.add(6);
even_nums.add(7);
even_nums.add(8);
even_nums.add(9);
even_nums.add(10);
even_nums.add(11);
even_nums.add(12);
even_nums.add(13);
even_nums.add(14);
even_nums.add(15);
Iterator mrx = even_nums.iterator();
while(mrx.hasNext()) {
Integer ample = mrx.next();
if(ample % 2==1) {
mrx.remove();
}
}
System.out.println(even_nums);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Importante: Será impossível remover itens usando um loop for ou um loop for-each, pois o tamanho da coleção muda enquanto o loop está em execução.

Pontos chave:

  1. O Iterator é uma interface introduzida no framework Collection do Java 1.2. O pacote java.util o contém.
  2. Um Cursor Java é usado para percorrer objetos de coleção.
  3. Iteradores são usados ​​para iterar os componentes de objetos de coleção um por um.
  4. Conhecido como um cursor universal de Java devido à sua adequação para todas as classes do framework Collection.
  5. As operações READ e REMOVE também são suportadas pelo Java Iterator.
  6. Há muito poucos nomes de método na classe Iterator em comparação com a classe Enumeration Iterator.

 

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone