Memahami Java Vector: Penggunaan, Fitur, dan Perbandingan dengan ArrayList
Memahami Java Vector
Panduan ini menjelaskan kelas Java Vector, metode utamanya, dan perbedaannya dengan ArrayList. Pelajari kapan memilih Vector untuk pertimbangan keamanan thread dan performa.
Kelas Vector mengimplementasikan antarmuka List dan menawarkan array yang dapat diubah ukurannya, mirip dengan ArrayList. Berbeda dengan ArrayList, setiap operasi mutasi pada Vector disinkronkan, sehingga secara inherit aman untuk thread tetapi potensialmente lebih lambat dalam konteks single-thread.
Java Vector vs. ArrayList
Kedua ArrayList dan Vector menyediakan array dinamis, namun berbeda dalam penanganan konkuren:
- Vector menyinkronkan setiap pemanggilan metode, mengunci instance sebelum eksekusi.
- ArrayList tidak disinkronkan secara default; keamanan thread dapat ditambahkan dengan
Collections.synchronizedList() jika diperlukan.
Karena kunci per operasi, Vector dapat menimbulkan overhead dalam lingkungan multi-thread, sedangkan ArrayList biasanya menawarkan performa yang lebih baik saat keamanan thread tidak diperlukan.
Tips: Gunakan ArrayList untuk sebagian besar aplikasi. Gunakan Vector hanya ketika kode lama mengharusinya atau ketika Anda membutuhkan sinkronisasi bawaan tanpa pembungkus tambahan.
Membuat Vector
Anda dapat membuat instance Vector dengan tipe generik:
Vector<Type> vector = new Vector<>();
Contoh:
// Integer vector Vector<Integer> numbers = new Vector<>(); // String vector Vector<String> words = new Vector<>();
Metode Utama Vector
Kelas Vector menawarkan serangkaian lengkap operasi list, yang mencerminkan ArrayList. Beberapa metode yang sering digunakan meliputi:
add(E element) – menambahkan elemen. add(int index, E element) – menyisipkan pada posisi tertentu. addAll(Collection<? extends E> c) – penambahan massal. get(int index) – mengambil berdasarkan indeks. remove(int index) – menghapus berdasarkan indeks. clear() – menghapus semua elemen. size() – jumlah elemen saat ini. contains(Object o) – memeriksa keberadaan. toArray() – mengonversi ke array. toString() – representasi string. set(int index, E element) – mengganti pada indeks.
Menambahkan Elemen ke Vector
add(element) – menambahkan elemen. add(index, element) – menyisipkan pada indeks tertentu. addAll(vector) – menambahkan semua elemen dari vector lain.
Contoh:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> mammals = new Vector<>(); mammals.add("Dog"); mammals.add("Horse"); mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); Vector<String> animals = new Vector<>(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("New Vector: " + animals); } }
Output
Vector: [Dog, Horse, Cat] New Vector: [Crocodile, Dog, Horse, Cat]
Mengakses Elemen Vector
get(index) – mengambil elemen berdasarkan indeks. iterator() – mendapatkan iterator untuk akses berurutan.
Contoh:
import java.util.Iterator; import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> animals = new Vector<>(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); String element = animals.get(2); System.out.println("Element at index 2: " + element); Iterator<String> iter = animals.iterator(); System.out.print("Vector: "); while(iter.hasNext()) { System.out.print(iter.next() + ", "); } } }
Output
Element at index 2: Cat Vector: Dog, Horse, Cat,
Menghapus Elemen dari Vector
remove(index) – menghapus elemen pada posisi yang ditentukan. clear() – menghapus semua elemen secara efisien.
Contoh:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> animals = new Vector<>(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("Initial Vector: " + animals); String removed = animals.remove(1); System.out.println("Removed Element: " + removed); System.out.println("New Vector: " + animals); animals.clear(); System.out.println("Vector after clear(): " + animals); } }
Output
Initial Vector: [Dog, Horse, Cat] Removed Element: Horse New Vector: [Dog, Cat] Vector after clear(): []
Metode Tambahan Vector
| Metode | Deskripsi |
set(int index, E element) | Mengganti elemen pada posisi yang ditentukan. |
size() | Mengembalikan jumlah elemen. |
toArray() | Mengonversi isi ke array. |
toString() | Representasi string dari vector. |
contains(Object o) | Memeriksa apakah vector mengandung elemen yang ditentukan. |