Tutorial ini menjelaskan semua tentang Struktur Data Vektor di Java dengan Contoh. Anda akan belajar Membuat, Inisialisasi, Mengurutkan dan Menggunakan Vektor Java dalam Program Anda:
Sebuah vektor dapat didefinisikan sebagai larik dinamis yang dapat tumbuh atau menyusut dengan sendirinya, yaitu vektor akan tumbuh ketika lebih banyak elemen ditambahkan ke dalamnya dan akan menyusut ketika elemen dihapus darinya.
Perilaku ini tidak seperti array yang bersifat statis. Namun mirip dengan array, elemen vektor dapat diakses menggunakan indeks bilangan bulat.
Vektor dapat dipandang mirip dengan struktur data larik dinamis lainnya, ArrayList kecuali untuk dua perbedaan di bawah ini:
- Vektor disinkronisasi, yaitu semua metode dalam Vektor ditandai 'tersinkronisasi' dan dengan demikian setelah sebuah metode dipanggil, metode yang sama tidak dapat dipanggil kecuali jika pemanggilan sebelumnya telah berakhir.
- Kelas vektor memiliki banyak metode yang bukan merupakan bagian dari kerangka kerja koleksi, tetapi merupakan metode lama.
Kelas Vektor Java
Kelas Vektor terpisah dari kelas " java.util " dan mengimplementasikan antarmuka List. Vektor adalah sebuah larik objek atau vektor objek.
Deklarasi kelas dari kelas Vektor diberikan di bawah ini:
public class Vector extends Object mengimplementasikan List, Dapat dikloning, Dapat diserialisasikan
Seperti yang ditunjukkan di atas, kelas Vektor memperluas " java.lang.object " dan mengimplementasikan antarmuka Daftar, Dapat Dikloning, dan Dapat Diserialisasi.
Bagaimana Cara Membuat Vektor di Java?
Anda dapat membuat objek Vektor menggunakan salah satu metode konstruktor Vektor berikut.
Prototipe Konstruktor | Deskripsi |
---|---|
vektor() | Ini adalah konstruktor default dari kelas Vektor, yang membuat vektor kosong dengan ukuran 10. |
vektor (int initialCapacity) | Konstruktor yang kelebihan beban ini membuat objek Vektor kosong dengan kapasitas = initialCapacity. |
vektor(int initialCapacity, int capacityIncrement) | Metode konstruktor ini membuat objek Vektor kosong dengan initialCapacity dan capacityIncrement yang ditentukan. |
Vektor (Koleksi c) | Objek Vektor dibuat dengan elemen awal dari koleksi yang ditentukan c. |
Mari kita lihat masing-masing konstruktor untuk menginisialisasi objek Vektor.
Inisialisasi Vektor
(i) Vektor ()
Ini adalah konstruktor default kelas Vektor. Ketika Anda memanggil konstruktor ini, objek Vektor dengan ukuran default 10 akan dibuat.
Sintaks umum metode ini adalah:
Objek vektor = Vektor baru();
Sebagai contoh,
Vektor vec1 = Vektor baru ();
Pernyataan di atas membuat Vektor baru 'vec1' dengan ukuran 10.
(ii) Vektor (int initialCapacity)
Konstruktor kelas Vektor yang kelebihan beban menerima 'initialCapacity' sebagai argumen. Konstruktor ini membuat objek Vektor dengan kapasitas yang ditentukan.
Sintaks umum metode ini adalah:
Objek vektor = Vektor baru (Kapasitas awal);
Sebagai contoh,
Vektor vec1 = Vektor baru (10);
Pernyataan pemrograman di atas akan membuat objek Vektor 'vec1' dengan kapasitas 10. Artinya, Vektor ini dapat menyimpan hingga 10 elemen.
(iii) Vektor (int initialCapacity, int capacityIncrement)
Ini adalah konstruktor kelas Vektor yang kelebihan beban dan membuat objek Vektor dengan kapasitas awal dan kenaikan kapasitas yang ditentukan.
Sintaks umum untuk metode ini adalah:
Objek vektor = Vektor baru (Kapasitas awal, peningkatanKapasitas);
Sebagai contoh,
Vektor vec1 = Vektor baru (5,10);
Pada pernyataan di atas, kapasitas awal Vektor adalah 5 dan kenaikannya adalah 10. Ini berarti ketika elemen ke-6 dimasukkan ke dalam vektor, kapasitas vektor akan bertambah menjadi 15 (5 + 10). Demikian pula, ketika elemen ke-16 dimasukkan, kapasitas vektor Vektor akan diperpanjang menjadi 25 (15 + 10).
(iv) Vektor (Koleksi c)
Konstruktor overloaded terakhir dari kelas Vektor mengambil koleksi yang sudah ditentukan sebelumnya sebagai argumen dan membuat Vektor dengan semua elemen dari koleksi ini sebagai elemennya.
Sintaks umumnya adalah:
Objek vektor = Vektor baru (Koleksi c);
Sebagai contoh,
Vektor vec1 = new Vector(aList); di mana aList = {1,2,3,4,5};
Pernyataan di atas akan membuat sebuah Vektor 'vec1' dengan elemen awal sebagai {1,2,3,4,5}.
Dengan mengingat semua penjelasan ini, kita dapat mengimplementasikan program Vektor untuk memahami konstruktor ini dengan lebih baik.
Metode Vektor di Java
Berikut ini adalah metode yang didukung oleh kelas Vector di Java.
Nama Metode | Prototipe | Deskripsi |
---|---|---|
menambahkan | Boolean menambahkan (E e) | Menambahkan elemen yang diberikan ke ujung vektor. |
Void add(int indeks, E elemen) | Menambahkan elemen ke vektor pada indeks yang ditentukan. | |
addAll | Boolean addAll(Koleksi c) | Menambahkan semua elemen dari koleksi yang diberikan ke akhir vektor. |
Boolean addAll(int indeks, Koleksi c) | Menambahkan semua elemen dalam koleksi yang ditentukan pada indeks tertentu. | |
addElement | void addElement(E obj) | Menambahkan elemen yang ditentukan pada akhir vektor dengan memperbesar ukuran vektor. |
Kapasitas | Int kapasitas() | Mengembalikan kapasitas vektor saat ini. |
Jelas | Void clear() | Menghapus vektor elemen-elemennya. |
Clone | Klon objek () | Mengkloning vektor. |
Berisi | Boolean berisi (Objek o) | Memeriksa apakah vektor berisi elemen tertentu. |
berisiSemua | Boolean berisiSemua(Koleksi c) | Memeriksa apakah vektor berisi semua elemen yang ada dalam koleksi yang diberikan. |
copyInto | Void copyInto(Object[] anArray) | Menyalin elemen vektor ke dalam larik yang diberikan. |
ElementAt | E ElementAt(int indeks) | Mengembalikan elemen vektor pada indeks tertentu. |
Elemen | Elemen pencacahan () | Mengembalikan komponen yang dicacah untuk vektor. |
memastikanKapasitas | Void ensureCapacity(int minCapacity) | Meningkatkan kapasitas vektor untuk memenuhi kapasitas minimum yang ditentukan. |
Nama Metode | Prototipe | Deskripsi |
---|---|---|
Sama | Boolean sama dengan (Objek o) | Membandingkan vektor saat ini dengan vektor yang ditentukan untuk memeriksa apakah vektor tersebut sama. |
firstElement | E firstElement() | Mengembalikan elemen pertama vektor pada indeks 0. |
Dapatkan | E get(int indeks) | Mengembalikan elemen dalam vektor pada indeks yang ditentukan. |
hashCode | int hashCode() | Mengembalikan nilai kode hash untuk Vektor. |
indexOf | int indexOf(Objek o) | menemukan indeks kemunculan pertama dari elemen yang diberikan dalam vektor; -1 jika elemen tidak ada dalam vektor. |
int indexOf(Object o, int index) | Mencari vektor dari indeks yang diberikan ke arah depan untuk elemen tertentu; mengembalikan indeks jika elemen ditemukan, atau -1 jika elemen tidak ditemukan. | |
insertElementAt | Void insertElementAt(E obj, int index) | Menyisipkan objek yang diberikan dalam vektor pada indeks yang diberikan. |
isEmpty | Boolean isEmpty() | Memeriksa apakah vektor kosong. |
Iterator | Iteratoriterator() | Mengembalikan iterator yang digunakan untuk melintasi elemen-elemen vektor. |
lastElement | E lastElement() | Mengembalikan elemen terakhir dari vektor. |
lastIndexOf | Int lastIndexOf(Object o) | Mencari vektor untuk kemunculan terakhir dari elemen yang diberikan dan mengembalikan indeks, atau mengembalikan -1 jika elemen tidak ditemukan. |
Int lastIndexOf(Object o, int index) | Mulai mencari kemunculan terakhir dari elemen yang diberikan dari indeks yang diberikan ke belakang. Mengembalikan indeks jika elemen ditemukan, jika tidak mengembalikan -1. | |
listIterator | ListIterator listIterator() | Mengembalikan iterator daftar atas elemen vektor. |
ListIteratorlistIterator(int indeks) | Mengembalikan iterator daftar atas elemen vektor mulai dari indeks yang diberikan. |
Nama Metode | Prototipe | Deskripsi |
---|---|---|
Menghapus | E hapus (int indeks) | Menghapus elemen pada indeks tertentu dari vektor. |
Boolean hapus (Objek o) | Menghapus kemunculan pertama dari elemen yang diberikan dari vektor. Jika elemen tidak ada, tidak ada yang terjadi pada vektor | |
hapusSemua | Boolean hapusSemua(Koleksi c) | Menghapus semua elemen dari vektor yang ada dalam koleksi yang diberikan. |
void hapusSemuaElemen() | Menghapus semua elemen vektor sehingga menguranginya menjadi ukuran nol. | |
hapusElement | Boolean hapusElemen (Objek obj) | Menghapus kemunculan pertama dari elemen yang diberikan dari vektor. |
void removeElementAt(int index) | Menghapus elemen pada indeks yang diberikan. | |
removeRange | protected void removeRange(int fromIndex, int toIndex) | Menghapus semua elemen dari vektor dalam rentang yang diberikan dari fromIndex (inklusif), totoIndex (eksklusif). |
mempertahankanSemua | Boolean retainAll(Koleksi c) | Berbeda dengan 'removeAll', metode retainAll mempertahankan elemen dalam Vektor yang cocok dengan elemen dalam Koleksi tertentu. |
set | E set (int indeks, E elemen) | Menetapkan nilai pada indeks yang diberikan dengan elemen baru yang disediakan. |
Void set ElementAt(E obj, int index) | Mengatur elemen yang diberikan pada indeks yang diberikan. | |
setSize | Void setSize(int newSize) | Mengatur ukuran yang diberikan untuk vektor ini. |
Ukuran | int ukuran() | Mengembalikan jumlah elemen dalam vektor atau panjang vektor. |
subDaftar | ListsubList(intfromIndex, inttoIndex) | Mengembalikan tampilan atau subList vektor mulai dari fromIndex hingga toIndex. |
toArray | Object[] toArray() | Mengubah vektor yang diberikan menjadi sebuah larik yang berisi semua elemen vektor dalam urutan tertentu. |
T[] toArray(T[] a) | Mengembalikan larik dengan tipe tertentu yang berisi semua elemen vektor. | |
toString | String toString() | Mengembalikan representasi string dari vektor. |
trimToSize | void trimToSize() | Memangkas vektor untuk mengakomodasi ukuran saat ini. |
Implementasi Vektor
Program Java berikut ini mendemonstrasikan penggunaan semua metode konstruktor yang dijelaskan di atas.
import java.util.*; public class Main{ public static void main(String[] args) { //Membuat vektor v1, v2, v3 dan v4 Vektor v1 = new Vector(); //vektor dengan konstruktor default Vektor v2 = new Vector(20); //vektor dengan Ukuran yang diberikan //inisialisasi vektor v2 dengan nilai v2.add(10); v2.add(20); v2.add(30); Vektor v3 = new Vector(30, 10); //vektor dengan Ukuran dan Kenaikan yang diberikan //membuat vektor v4 dengankoleksi yang diberikan List aList = new ArrayList(); aList.add("satu"); aList.add("dua"); Vektor v4 = new Vector(aList); //mencetak isi setiap vektor System.out.println("Vektor v1 Isi:" + v1); System.out.println("Vektor v2 Isi:" + v2); System.out.println("Vektor v3 Isi:" + v3); System.out.println("Vektor v4 Isi:" + v4); } }
Keluaran:
Program di atas memiliki empat Vektor di dalamnya. Vektor pertama v1 dibuat dengan konstruktor default. Vektor kedua v2 dibuat dengan kapasitas awal 20. Kemudian beberapa elemen ditambahkan ke v2. Vektor ketiga dibuat dengan kapasitas awal 30 dan kenaikan 10.
Selanjutnya, kita membuat ArrayList dan membuat Vektor keempat v4 dengan ArrayList sebagai argumennya. Terakhir, kita menampilkan isi dari masing-masing Vektor ini.
Perhatikan isi dari vektor keempat v4. Karena kita telah menyediakan ArrayList sebagai argumennya, maka isi dari ArrayList menjadi isi dari v4.
Contoh Vektor Lengkap
Sekarang mari kita terapkan program lain yang akan mendemonstrasikan pembuatan vektor, menambahkan elemen ke dalamnya, dan menampilkan isinya.
import java.util.*; public class Main { public static void main(String args[]) { //Membuat Vector kosong bilangan genap Vector evenVector= new Vector (); //Menambahkan elemen pada vektor evenVector.add(2); evenVector.add(4); evenVector.add(6); evenVector.add(8); evenVector.add(10); evenVector.add(12); evenVector.add(14); evenVector.add(16); //Menampilkan vektor tersebut System.out.println("Vektorisi evenVector: "+evenVector); //menghapus kemunculan pertama dari elemen 4 menggunakan metode hapus System.out.println("\nKemunculan pertama dari elemen 4 dihapus: "+evenVector.remove((Integer)4)); //Menampilkan vektor tersebut System.out.println("\nKonten vektor setelah operasi hapus: "+evenVector); //Menghapus elemen pada indeks 4 dan menampilkan vektor tersebut System.out.println("\nMenghapus elemen pada indeks 4:"+evenVector.remove(4)); System.out.println("\nKonten vektor setelah dihapus: "+evenVector); //kode hash untuk vektor System.out.println("\nKode hash dari vektor = "+evenVector.hashCode()); //mendapatkan elemen pada indeks 1 System.out.println("\nElemen pada indeks 1 adalah = "+evenVector.get(1)); } }
Keluaran:
Mari kita ambil contoh vektor lain. Dalam program ini, kita akan menggunakan vektor string Kita memanipulasi vektor ini dengan menambahkan elemen dan kemudian mencetak ukuran dan kapasitasnya.
import java.util.*; public class Main { public static void main(String args[]) { // membuat vektor dengan kapasitas awal = 2 Vector fruits_vec = new Vector(2); //menambahkan elemen ke dalam vektor fruits_vec.addElement("Anggur"); fruits_vec.addElement("Melon"); fruits_vec.addElement("Kiwi"); fruits_vec.addElement("Apel"); //mencetak ukuran dan kapasitas vektor saat ini System.out.println("Vector Size:"+fruits_vec.size()); System.out.println("Default Vector kenaikan kapasitas: "+fruits_vec.capacity()); //menambahkan lebih banyak elemen pada vektor fruits_vec.addElement("Jeruk"); fruits_vec.addElement("Mangga"); fruits_vec.addElement("Ara"); //mencetak ukuran dan kapasitas saat ini lagi System.out.println("Ukuran Vektor setelah penambahan: "+fruits_vec.size()); System.out.println("Kapasitas Vektor setelah penambahan:"+buah_vec.kapasitas()); //cetak elemen vektor Enumerasi fruits_enum = fruits_vec.elements(); System.out.println("\nElemen Vektor adalah:"); while(fruits_enum.hasMoreElement()) System.out.print(fruits_enum.nextElement() + " "); } }
Keluaran:
Mengurutkan Vektor
Anda juga dapat mengurutkan vektor menurut urutan tertentu. Untuk mengurutkan Vektor, Anda harus menggunakan metode Collections.sort () dari Java Collections Framework.
Contoh berikut ini menunjukkan pengurutan vektor.
import java.util.*; public class Main { public static void main(String arg[]) { //Membuat vektor kosong Vector oddVector = new Vector(); //Menambahkan elemen pada vektor oddVector.add(1); oddVector.add(11); oddVector.add(7); oddVector.add(3); oddVector.add(5); //mencetak elemen-elemen vektor tersebut System.out.println("Elemen-elemen vektor : "+oddVector); //mengurutkan vektor dengan menggunakan metode Collections.sortCollections.sort(oddVector); //cetak vektor yang telah diurutkan System.out.println("Elemen vektor setelah diurutkan: "+oddVector); } }
Keluaran:
Program di atas membuat sebuah Vektor dengan angka ganjil. Kemudian dengan menggunakan metode Collections.sort(), Vektor tersebut diurutkan.
Vektor 2D (Dua Dimensi)
Vektor 2d adalah Vektor yang memiliki setiap elemennya sebagai Vektor, dan juga dapat disebut sebagai 'Vektor dari Vektor'.
Contoh di bawah ini menunjukkan Vektor 2d.
import java.util.*; public class Main { public static void main(String args[]) { //mendefinisikan dan menginisialisasi sebuah vektor Vector inner_vec = new Vector(); inner_vec.add("Perangkat Lunak"); inner_vec.add("Pengujian"); inner_vec.add("Java"); inner_vec.add("Tutorial"); //mendefinisikan sebuah vektor lain dan menambahkan vektor yang pertama ke dalamnya Vector outer_vec = new Vector(); outer_vec.add(inner_vec); String str; //memperlihatkan isi darivektor dari vektor-vektor System.out.println("Isi vektor dari vektor-vektor:"); for(int i=0;iKeluaran:
Pada program di atas, kita memiliki sebuah vektor yang terdiri dari empat elemen. Kemudian, kita mendeklarasikan sebuah vektor lain dan menambahkan vektor sebelumnya sebagai elemen pada vektor kedua. Perhatikan cara elemen-elemen vektor tersebut diakses. Dari perulangan for, Anda dapat menyimpulkan bahwa elemen pertama vektor terluar (pada indeks 0) merupakan vektor pertama atau vektor dalam.
Jadi, dalam perulangan, kita mempertahankan indeks vektor luar sebagai 0 dan mengulang vektor dalam untuk menampilkan semua elemen.
Ubah Vektor Menjadi Array
Mari kita lihat contoh berikut ini untuk mengubah Vektor menjadi larik. Untuk mengubah Vektor menjadi Larik, kita menggunakan metode 'toArray' pada kelas Vektor.
Dalam contoh pemrograman berikut ini Kemudian dengan menggunakan metode toArray dari kelas Vektor, kita mengonversi Vektor menjadi larik String dengan mengoper objek larik string sebagai argumen.
import java.util.Vector; public class Main { public static void main(String[] args) { // Membuat Vector dari elemen String Vector warna_vector = new Vector(); // Menambahkan elemen ke dalam Vector warna_vector.add("Violet"); warna_vector.add("Nila"); warna_vector.add("Biru"); warna_vector.add("Hijau"); warna_vector.add("Kuning"); warna_vector.add("Oranye"); warna_vector.add("Merah"); // Mengkonversi Vector keString Array menggunakan metode toArray String[] colorsArray = color_vector.toArray(new String[color_vector.size()]); //cetak Elemen Array System.out.println("Elemen Array String :"); for(String val: colorsArray){ System.out.print(val + " "); } }Keluaran:
Vektor vs Larik
Di bawah ini adalah beberapa perbedaan antara Vektor dan Array.
Vektor Array Vektor bersifat dinamis dan ukurannya membesar dan mengecil saat elemen ditambahkan atau dihilangkan. Array bersifat statis dan ukurannya tetap setelah dideklarasikan. Vektor hanya dapat menyimpan objek. Array dapat menyimpan tipe primitif dan juga objek. Ini menyediakan metode size() untuk menentukan ukuran. Menyediakan properti panjang untuk menentukan panjangnya. Tidak ada konsep dimensi tetapi dapat dibuat sebagai vektor vektor, biasanya disebut vektor 2d. Menyusun dimensi dukungan. Vektor disinkronkan. Array tidak disinkronkan. Vektor lebih lambat daripada array. Array lebih cepat. Mencadangkan penyimpanan tambahan ketika kapasitas bertambah. Tidak memesan penyimpanan tambahan apa pun. Memastikan keamanan tipe dengan mendukung obat generik. Tidak ada dukungan umum. Vektor vs ArrayList
Bagian ini membahas perbedaan antara Vektor dan ArrayList di Java.
Vektor ArrayList Hadir sejak versi awal Java (versi JDK 1.0). Diperkenalkan di Java sejak JDK 1.2 Vektor adalah kelas warisan dari Java. ArrayList adalah bagian dari Java Collections Framework. Vektor tumbuh dua kali lipat ukurannya ketika kapasitasnya tercapai. ArrayList akan bertambah setengah ukuran ketika kapasitasnya tercapai. Metode vektor disinkronkan. ArrayList tidak disinkronkan. Vektor menggunakan Pencacah dan Pencacah Ulang untuk melintasi. ArrayList hanya menggunakan Iterator. Operasi vektor lebih lambat. ArrayList lebih cepat. Vektor memiliki ukuran kenaikan yang dapat digunakan untuk meningkatkan ukuran vektor. ArrayList tidak menyediakan ukuran kenaikan. Vector adalah thread-safe yang berarti menggunakan Vector dari beberapa thread diperbolehkan dan aman. ArrayList tidak aman untuk thread. Pertanyaan yang Sering Diajukan
T #1) Apa yang dimaksud dengan Vektor di Java?
Jawaban: Di Java, Vektor dapat didefinisikan sebagai sebuah larik objek yang dapat dikembangkan. Mirip dengan larik, elemen Vektor juga dapat diakses menggunakan indeks.
T # 2) Apakah vektor diurutkan dalam Java?
Jawaban: Ya, Vektor dipesan dan mempertahankan urutan penyisipan elemen.
T # 3) Apakah Vector thread aman di Java?
Jawaban: Ya, di Java, kelas Vektor aman untuk thread. Karena kelas Vektor disinkronkan, maka kelas ini aman untuk thread, yaitu Anda bisa menggunakan kelas Vektor dari beberapa thread dan aman.
T #4) Mengapa kita menggunakan vektor di Java?
Jawaban: Alasan paling penting mengapa Vektor digunakan di Java adalah karena Vektor tumbuh dan menyusut secara otomatis. Vektor bersifat dinamis, dan karena itu lebih disukai daripada array.
T #5) Mana yang lebih baik - ArrayList atau vektor?
Jawaban: Dari segi kinerja, ArrayList lebih cepat jika dibandingkan dengan Vektor karena Vektor disinkronkan dan membuatnya lebih lambat.
Kesimpulan
Pada tutorial ini, kita mulai dengan struktur data Vektor di Java. Vektor hampir mirip dengan larik di mana elemen-elemen Vektor diakses menggunakan indeks yang sudah dikenal. Vektor disebut larik dinamis dan tidak seperti larik, ukuran Vektor membesar dan mengecil secara otomatis.
Vektor juga memiliki fitur kapasitas dan peningkatan yang dapat digunakan untuk membuat dan memesan penyimpanan tambahan untuk penambahan di masa mendatang. Vektor adalah kelas lama dalam paket java.util Java dan disinkronkan serta aman untuk di-read.
Oleh karena itu, kita harus memilih vektor ketika kita membutuhkan ukuran yang dinamis dan juga ketika kita bekerja di lingkungan yang memiliki banyak utas.