Java List
List adalah struktur data collection yang memiliki sifat sebagai berikut:
- Elemen di
Listbisa duplikat, artinya bisa memasukkan data yang sama pada elemennya. - Data
Listberurut sesuai dengan posisi kita memasukkan data. Listmemiliki index, sehingga kita bisa menggunakan nomor index untuk mendapatkan element di list.
Di Java ada beberapa implementasi List, dan kita bisa memilih sesuai dengan kebutuhan kita.
ArrayList
ArrayListadalah implementasi dariListseperti pada array.- Element pada
ArrayListdiindex seperti array. - Default kapasitas array di
ArrayListadalah 10, namun ketika kita memasukkan data dan array sudah penuh, maka secara otomatisArrayListakan membuat array baru dengan kapasitas baru dengan ukuran: kapasitas lama + data baru.
LinkedList
LinkedList adalah implementasi List dengan struktur data Double Linked List, data yang dimasukan akan berurut sesuai waktu memasukan data. LinkedList menampung datanya berdasarkan node per node.
ArrayList vs LinkedList
| Operation | ArrayList | LinkedList |
|---|---|---|
| add | Cepat kalau indexnya belum penuh | cepat |
| set | cepat karena berdasar index | lambat |
| get | cepat | lambat |
| remove | lambat harus menggeser index | cepat |
Contoh ArrayList
import java.util.ArrayList;
import java.util.List;
public class DemoList {
public static void main(String[] args) {
List<String> names = new ArrayList<>(); // bisa dimasukan default kapasitas contoh ArrayList<>(100)
names.add("Tirta");
names.add("Agus");
names.add("Fahmi");
System.out.println("Data List:");
printOut(names);
// ubah elemen
names.set(1, "Wayan");
System.out.println(names.get(1));
System.out.println("Setelah mengubah data:");
printOut(names);
// hapus elemen
names.remove(1);
System.out.println("Setelah menghapus data:");
printOut(names);
}
static void printOut(List<String> names) {
for(var name: names) {
System.out.println(name);
}
}
}
Output:
Data List:
Tirta
Agus
Fahmi
Wayan
Setelah mengubah data:
Tirta
Wayan
Fahmi
Setelah menghapus data:
Tirta
Fahmi