Skip to content

Commit 0a65ee3

Browse files
authored
add: penjelasan JavaIterator (#124)
1 parent 18db853 commit 0a65ee3

File tree

2 files changed

+177
-0
lines changed

2 files changed

+177
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package utilities.JavaIterator;
2+
import java.util.Iterator;
3+
import java.util.ArrayList;
4+
5+
public class JavaIterator {
6+
public static void main(String[] args) {
7+
8+
// Deklarasi ArrayList
9+
ArrayList<String> langs = new ArrayList<String>();
10+
11+
// Mengisi ArrayList sebanyak 4 data String
12+
langs.add("Java");
13+
langs.add("Python");
14+
langs.add("PHP");
15+
langs.add("Rust");
16+
17+
// Memanggil method iterator()
18+
Iterator<String> itr = langs.iterator();
19+
20+
// Looping untuk menampilkan elemen data collection
21+
while(itr.hasNext()) {
22+
System.out.println(itr.next());
23+
}
24+
25+
// Deklarasi ArrayList
26+
ArrayList<Integer> nums = new ArrayList<Integer>();
27+
28+
// Mengisi ArrayList sebanyak 4 data Integer
29+
nums.add(12);
30+
nums.add(77);
31+
nums.add(34);
32+
nums.add(29);
33+
34+
// Memanggil method iterator()
35+
Iterator<Integer> itr2 = nums.iterator();
36+
37+
// Looping untuk menghapus elemen data bilangan genap dalam collection
38+
while(itr2.hasNext()) {
39+
Integer n = itr2.next();
40+
if(n % 2 == 0) {
41+
itr2.remove();
42+
}
43+
}
44+
45+
// Menampilkan collection
46+
System.out.println(nums);
47+
48+
// Deklarasi ArrayList
49+
ArrayList<String> animals = new ArrayList<>();
50+
51+
// Mengisi ArrayList sebanyak 4 data String
52+
animals.add("Cat");
53+
animals.add("Squid");
54+
animals.add("Tiger");
55+
animals.add("Wolf");
56+
57+
// Memanggil method iterator()
58+
Iterator<String> itr3 = animals.iterator();
59+
60+
// Melakukan action mencetak elemen data dalam collection
61+
itr3.forEachRemaining((animal) -> System.out.println(animal));
62+
}
63+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Java Iterator
2+
3+
Didalam **JAVA** terdapat sebuah class yang bernama **Iterator**. Class ini berguna untuk melakukan iterasi pada data collections seperti ArrayList dan HashSet.
4+
5+
Untuk menggunakannya, silahkan import package ```java.util.Iterator``` terlebih dahulu. Kemudian, panggil method ```iterator()``` pada collection yang ingin dilakukan iterasi.
6+
7+
Terdapat 4 method dalam class **Iterator**, yaitu :
8+
9+
- ```forEachRemaining(Consumer<? super E> action)```
10+
Melakukan _action_ yang telah diinput sebagai argumen hingga semua elemen data melewati proses iterasi.
11+
- ```hasNext()```.
12+
Melakukan pengecekan apakah masih ada elemen data yang dapat diproses.
13+
- ```next()```
14+
Mengembalikan nilai berupa elemen data yang berada setelah elemen data yang sedang diproses.
15+
- ```remove()```
16+
Menghapus suatu elemen data pada collection yang sedang diiterasi.
17+
18+
### Contoh penggunaan
19+
[![](https://img.shields.io/static/v1?&label=Lihat%20source%20code&message=%3e&color)](JavaIterator.java)
20+
21+
Dibawah ini akan didemonstrasikan cara membaca dan menampilkan data dari sebuah ArrayList dengan memanfaatkan method ```next()``` dan ```hasNext()```.
22+
23+
```java
24+
ArrayList<String> langs = new ArrayList<String>();
25+
Iterator<String> itr = langs.iterator();
26+
27+
cars.add("Java");
28+
cars.add("Python");
29+
cars.add("PHP");
30+
cars.add("Rust");
31+
32+
while(itr.hasNext()) {
33+
System.out.println(itr.next());
34+
}
35+
```
36+
37+
Alur kerja program diatas adalah :
38+
39+
1. Proses iterasi dimulai pada elemen data "Java".
40+
41+
2. Setelah proses iterasi data "Java" selesai, method ```hasnext()``` melakukan cek apakah masih ada elemen data yang tersedia untuk diiterasi. Dalam kasus ini, terdapat elemen data "Python" maka method ```hasNext()``` mengembalikan nilai **```true```** .
42+
43+
3. Didalam blok program ```while``` loop, elemen data "Python" diakses dengan menggunakan method ```next()``` lalu mencetaknya dengan ```System.out.println()``` .
44+
45+
4. Langkah-langkah diatas akan terus dilakukan hingga akhirnya tidak ada lagi elemen data yang dapat diproses.
46+
47+
Maka, outputnya adalah
48+
49+
```
50+
Java
51+
Python
52+
PHP
53+
Rust
54+
```
55+
56+
Selanjutnya, kita akan coba menggunakan method ```remove()``` untuk menghapus elemen data angka genap dalam sebuah ArrayList.
57+
58+
```java
59+
ArrayList<Integer> nums = new ArrayList<Integer>();
60+
61+
nums.add(12);
62+
nums.add(77);
63+
nums.add(34);
64+
nums.add(29);
65+
66+
Iterator<Integer> itr = nums.iterator();
67+
68+
while(itr.hasNext()) {
69+
Integer n = itr.next();
70+
if(n % 2 == 0) {
71+
itr.remove();
72+
}
73+
}
74+
75+
System.out.println(nums);
76+
```
77+
78+
Alur kerja program diatas sama saja dengan penjelasan pada contoh sebelumnya. Namun, kita memanggil method ```remove()``` selama method ```hasNext()``` mengembalikan nilai **```true```** .
79+
80+
Maka, outputnya adalah
81+
82+
```
83+
[77, 29]
84+
```
85+
86+
Selanjutnya, kita akan coba menggunakan method ```forEachRemaining()``` untuk menampilkan seluruh elemen data pada sebuah ArrayList. Namun, kita tidak akan menggunakan perulangan ```while``` seperti pada contoh sebelumnya.
87+
88+
```java
89+
ArrayList<String> animals = new ArrayList<>();
90+
91+
animals.add("Cat");
92+
animals.add("Squid");
93+
animals.add("Tiger");
94+
animals.add("Wolf");
95+
96+
Iterator<String> itr3 = animals.iterator();
97+
98+
itr3.forEachRemaining((animal) -> System.out.println(animal));
99+
```
100+
101+
Elemen data yang sedang diproses akan diinput sebagai argumen ```animal```, kemudian _action_ yang akan dilakukan adalah mencetak elemen data tersebut dengan ```System.out.println(animal)``` .
102+
103+
Maka, outputnya adalah
104+
105+
```
106+
Cat
107+
Squid
108+
Tiger
109+
Wolf
110+
```
111+
112+
### Apakah ada method lain yang bisa digunakan ?
113+
114+
Tidak. Hanya keempat method diatas yang dapat digunakan dari class **Iterator**.

0 commit comments

Comments
 (0)