Apa itu Vektor di Java dan bagaimana kita menggunakannya?



Blog di 'Vectors in Java' ini akan membantu anda memahami bagaimana kelas vektor berbeza dari ArrayList dan membantu anda belajar mengenai kaedah yang berbeza yang terlibat.

Vektor di adalah salah satu struktur data yang paling biasa digunakan dalam dunia pengaturcaraan.Kita semua tahu bahawa Susunan adalah struktur data yang menyimpan data secara linear. Vektor juga menyimpan data secara linear, tetapi tidak seperti Array, mereka tidak mempunyai ukuran tetap. Sebaliknya, saiznya dapat ditingkatkan berdasarkan permintaan.

Kelas vektor adalah kelas kanak-kanak dari Senarai Abstrak kelas dan pelaksanaan pada Senaraikan .Untuk menggunakan Vectors, pertama-tama kita mesti mengimport kelas Vektor dari pakej java.util:





fungsi yang hanya berbeza dari jenis pengembaliannya tidak boleh dibebani secara berlebihan

import java.util.Vector

Dalam artikel ini, kita akan membincangkan konsep vektor berikut:



Mari kita mulakan!

Kelebihan vektor di Jawa

  • Sifat mempunyai ukuran dinamik sangat berguna kerana dapat mengelakkan pembaziran memori sekiranya kita tidak mengetahui ukuran struktur data pada masa pengisytiharan.
  • Apabila kita ingin mengubah ukuran struktur data kita di tengah program, vektor terbukti sangat berguna.

Sifat mempunyai ukuran dinamik tidak unik untuk Vektor di Jawa. Struktur data lain, yang dikenali sebagai ArrayList juga menunjukkan sifat mempunyai ukuran yang dinamik. Walau bagaimanapun, Vektor berbeza dari ArrayLists kerana beberapa sebab:

  • Pertama, Vektor disegerakkan yang memberikan kelebihan berbanding berbanding dengan program kerana terdapat risiko kerosakan data.
  • Kedua, Vectors mempunyai beberapa fungsi warisan yang dapat dilaksanakan hanya pada vektor dan bukan pada ArrayLists.

Cara Mengakses Elemen dalam Vektor

Kita dapat mengakses anggota data hanya dengan menggunakan indeks elemen, sama seperti kita mengakses elemen dalam Susunan.



Contoh- Sekiranya kita ingin mengakses elemen ketiga dalam vektor v, kita hanya menyebutnya sebagai v [3].

Pembina Vektor

Berikut adalah pelbagai variasi vektor pembina tersedia untuk digunakan:

  1. Vektor (int Kapasiti awal, Kenaikan int) - Membina vektor dengan Kapasiti awal yang diberi dan peningkatan saiznya.
  2. Vektor (Kapasiti awal int) - Membina vektor kosong dengan Kapasiti awal yang diberikan. Dalam kes ini, Kenaikan adalah sifar.
  3. Vektor () - Membina vektor lalai kapasiti 10.
  4. Vektor (Koleksi c) - Membangun vektor dengan koleksi tertentu, susunan elemen sama seperti yang dikembalikan oleh iterator koleksi.

Terdapat juga tiga parameter terlindung dalam vektor

  1. Kenaikan kapasiti int () - Secara automatik meningkatkan kapasiti vektor apabila ukuran menjadi lebih besar daripada kapasiti.
  2. Int elementCount () - beritahu bilangan elemen dalam vektor
  3. Objek [] elementData () - susunan di mana elemen vektor disimpan

Kesalahan Paling Umum dalam Pengisytiharan Vektor

  • Vektor melempar sebuah PengecualianArgumentElegal jika InitialSize vektor yang ditentukan adalah negatif.
  • Sekiranya koleksi yang ditentukan adalah nol, Ia membuang NullPointerException

Catatan:

  1. Sekiranya kenaikan vektor tidak ditentukan maka kapasitinya akandua kali ganda dalam setiap kitaran kenaikan.
  2. Kapasiti vektor tidak boleh di bawah ukuran, mungkin sama dengannya.

Mari kita pertimbangkan contoh memulakan Vectors Constructors.

Contoh: Memulakan Pembina Vektor

/ Kod Java yang menggambarkan Vektor Konstruktor mengimport java.util. * Kelas awam Utama {public static void main (String [] args) {// create vector default Vector v1 = new Vector () // buat vektor yang diberi Size Vector v2 = Vektor baru (20) // buat vektor Vektor Ukuran dan Kenaikan yang diberikan v3 = Vektor baru (30,10) v2.add (100) v2.add (100) v2.add (100) // buat vektor dengan diberi koleksi Vektor v4 = Vektor baru (v2) System.out.println ('Vektor kapasiti v1' + v1.kapasiti ()) System.out.println ('Vektor kapasiti v2' + v2.kapasiti ()) System.out .println ('Vektor kapasiti v3' + v3.capacity ()) System.out.println ('Vektor kapasiti v4' + kapasiti v4 ())}

Pengeluaran

Pembina - Vektor di Jawa - Edureka

Peruntukan memori vektor

Setakat ini, anda mesti faham bahawa Vektor tidak mempunyai ukuran tetap, sebaliknya, mereka mempunyai keupayaan untuk mengubah ukurannya secara dinamik. Seseorang mungkin berfikir bahawa vektor memperuntukkan ruang panjang yang tidak terbatas untuk menyimpan objek. Tetapi ini tidak berlaku. Vektor boleh mengubah ukurannya berdasarkan dua bidang iaitu 'kapasiti' dan 'kapasiti peningkatan'. Pada mulanya, ukuran sama dengan medan ‘kapasiti’ dialokasikan ketika vektor diisytiharkan. Kita boleh memasukkan elemen yang sama dengan kapasiti. Tetapi sebaik sahaja elemen seterusnya dimasukkan, ia akan meningkatkan ukuran array dengan ukuran ‘capacityIncrement’. Oleh itu, ia dapat mengubah ukurannya secara dinamik.

Untuk pembina lalai , kapasiti digandakan setiap kali kapasiti penuh dan elemen baru akan dimasukkan.

Contohnya - Andaikan kita mempunyai vektor InitialCapacity 5 dan Peningkatan kapasiti dari 2.Jadi ukuran awal vektor adalah 5 elemen Kami memasukkan 5 elemen ke dalam vektor ini satu persatu, iaitu 1,2,3,4,5. Apabila kita cuba memasukkan elemen lain ke dalam vektor iaitu 6, ukuran vektor akan meningkat sebanyak 2. Oleh itu ukuran vektor sekarang 7. Oleh itu vektor dengan mudah menyesuaikan ukurannya mengikut no. unsur.

Titik menarik yang lain adalah bahawa tidak seperti tatasusunan, vektor tidak mengandungi objek sebenar, tetapi hanya merujuk pada objek. Oleh itu, ia membolehkan objek dari pelbagai jenis data disimpan dalam vektor yang sama.

Kaedah dalam Vektor

Mari kita lihat beberapa kaedah vektor yang sangat kerap digunakan.

  • Tambah Boolean (Objek o) - Ia menambahkan elemen di hujung vektor.
// Kod Java yang menunjukkan kaedah boolean add () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Ia mencipta vektor lalai v.add (1 ) // Menambah 1 di akhir senarai v.add ('Java') // Menambah 'Java' di akhir senarai v.add ('is') // Menambah 'adalah' di akhir list v.add ('Fun') // Menambah 'Fun' di hujung senarai System.out.println ('Vektornya' + v)}}

Pengeluaran

  • Tambah Void (int Indeks, E elemen) - Ia menambahkan elemen yang diberikan pada indeks yang ditentukan dalam vektor
// Kod Java menunjukkan kaedah tambah tidak sah () mengimport java.util. * Kelas awam Utama {umum statik kekosongan utama (String [] args) {Vektor v = baru Vektor () // Ia membuat vektor lalai v.add (0 , 1) // Menambah 1 pada indeks 0 v.add (1, 'Java') // Menambah 'Java' pada indeks 1 v.add (2, 'is') // Menambah 'adalah' pada indeks 2 v.add (3, 'Fun') // Menambah 'Fun' di indeks 3 v.add (4, '!!!') // Menambah 'Fun' di indeks 4 System.out.println (' Vektornya adalah '+ v)}}

Pengeluaran

  • Boolean Remove (objek o) - Ia membuang menghilangkan elemen pada indeks yang diberikan dalam vektor
// Kod Java menunjukkan kaedah boolean remove () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Ia mencipta vektor lalai v.add (1 ) // Menambah 1 di akhir senarai v.add ('Java') // Menambah 'Java' di akhir senarai v.add ('is') // Menambah 'adalah' di akhir list v.add ('Fun') // Menambah 'Fun' di akhir senarai System.out.println ('Vector sebelum penyingkiran' + v) v.remove (1) System.out.println ('Vector selepas penyingkiran '+ v)}}

Pengeluaran

  • Boolean removeElement ( Objek obj) - Ia memadamkan elemen dengan namanya obj (bukan mengikut nombor indeks)
// Kod Java menunjukkan kaedah removeElement () import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Ia membuat vektor lalai v.add (1) // Menambah 1 di akhir senarai v.add ('Java') // Menambah 'Java' di akhir senarai v.add ('is') // Menambah 'adalah' di akhir senarai v.add ('Fun') // Menambah 'Fun' di akhir senarai System.out.println ('Vektor sebelum penyingkiran' + v) v.removeElement ('Java') System.out.println ('Vector selepas penyingkiran '+ v)}}

Pengeluaran

  • Saiz int () - Ia mengembalikan ukuran vektor.
// Kod Java menunjukkan ukuran () kaedah import java.util. * Kelas awam Utama {public static void main (String [] args) {Vector v = new Vector () // Ia membuat vektor lalai v.add (0, 1) // Menambah 1 pada indeks 0 v.add (1, 'Java') // Menambah 'Java' pada indeks 1 v.add (2, 'is') // Menambah 'adalah' pada indeks 2 v.add (3, 'Fun') // Menambah 'Fun' di indeks 3 System.out.println ('Ukuran vektor adalah' + v.size ())}}

Pengeluaran

  • Kapasiti Int () - Ia mengembalikan kapasiti vektor
// Kod Java menunjukkan kapasiti () kaedah import java.util. * Kelas awam Utama {public static void main (String [] args) {Vector v = new Vector () // Ia membuat vektor lalai v.add (0, 1) // Menambah 1 pada indeks 0 v.add (1, 'Java') // Menambah 'Java' pada indeks 1 v.add (2, 'is') // Menambah 'adalah' pada indeks 2 v.add (3, 'Fun') // Menambah 'Fun' di indeks 3 System.out.println ('Kapasiti vektor adalah' + v.capacity ())}}

Pengeluaran

  • Objek mendapatkan (int indeks) - Ia mengembalikan elemen pada kedudukan yang diberikan dalam vektor
// Kod Java menunjukkan kaedah get () import java.util. * Kelas awam Utama {public static void main (String [] args) {Vector v = new Vector () // Ia mencipta vektor lalai v.add (1) // Menambah 1 di akhir senarai v.add ('Java') // Menambah 'Java' di akhir senarai v.add ('is') // Menambah 'adalah' di akhir senarai v.add ('Fun') // Menambah 'Fun' di akhir senarai System.out.println ('Elemen pada indeks 1 adalah' + v.get (1))}}

Pengeluaran

  • Objek pertamaElemen () - Ia mengembalikan elemen pertama
// Kod Java menunjukkan kaedah firstElement () import java.util. * Kelas awam Utama {public static void main (String [] args) {Vector v = new Vector () // Ia mencipta vektor lalai v.add (1) // Menambah 1 di akhir senarai v.add ('Java') // Menambah 'Java' di akhir senarai v.add ('is') // Menambah 'adalah' di akhir senarai v.add ('Fun') // Menambah 'Fun' di akhir senarai System.out.println ('Elemen pertama adalah' + v.firstElement ())}}

Pengeluaran

  • Objek LastElement () - Ia mengembalikan elemen terakhir
// Kod Java menunjukkan kaedah LastElement () import java.util. * Kelas awam Utama {public static void main (String [] args) {Vector v = new Vector () // Ia mencipta vektor lalai v.add (1) // Menambah 1 di akhir senarai v.add ('Java') // Menambah 'Java' di akhir senarai v.add ('is') // Menambah 'adalah' di akhir senarai v.add ('Fun') // Menambah 'Fun' di akhir senarai System.out.println ('Elemen terakhir adalah' + v.lastElement ())}}

Pengeluaran

  • Boolean sama dengan (Objek o) - Ia membandingkan vektor dengan objek yang ditentukan untuk persamaan. Ia kembali benar jika semua elemen benar pada indeksnya yang sesuai
// Kod Java yang menunjukkan boolean sama () kaedah import java.util. * Kelas awam Utama {public static void main (String [] args) {Vector v = new Vector () // Ia mencipta vektor lalai Vektor vcopy = vektor baru () v.add (1) // Menambah 1 di akhir senarai v.add ('Java') // Menambah 'Java' di akhir senarai v.add ('is') // Menambah ' adalah 'di akhir senarai v.add (' Fun ') // Menambah' Fun 'di akhir senarai vcopy.add (0,1) // Menambah 1 pada indeks 0 vcopy.add (1, 'Java') // Menambah 'Java' pada indeks 1 vcopy.add (2, 'is') // Menambah 'adalah' pada indeks 2 vcopy.add (3, 'Fun') // Menambah 'Fun' pada indeks 3 vcopy.add (4, '!!!') // Menambah 'Fun' pada indeks 4 jika (v.equals (vcopy)) System.out.println ('Kedua vektor sama') Sistem lain .out.println ('Vektor tidak sama')}}

Pengeluaran

  • Batal trimtosize () - Kaedah ini menghilangkan kapasiti tambahan dan mengekalkan kapasiti hanya untuk menahan unsur-unsur iaitu sama dengan ukuran
// Kod Java menunjukkan kaedah trimToSize () import java.util. * Kelas awam Utama {public static void main (String [] args) {Vector v = new Vector () // Ia mencipta vektor lalai v.add (0, 1) // Menambah 1 pada indeks 0 v.add (1, 'Java') // Menambah 'Java' pada indeks 1 v.add (2, 'is') // Menambah 'adalah' pada indeks 2 v.add (3, 'Fun') // Menambah 'Fun' pada indeks 3 System.out.println ('Kapasiti vektor adalah' + v.capacity ()) v.trimToSize () System.out.println ( 'Kapasiti vektor adalah' + v.capacity ())}}

Pengeluaran


Kaedah Penting Yang Lain

Sekarang anda mesti mendapat idea yang baik mengenai cara bekerja dengan vektor. Sekiranya anda ingin meneroka lebih banyak kaedah vektor maka lihat jadual di bawah ini.

Nama Kaedah Fungsi Kaedah

Boolean adalah Kosong ()

memeriksa sama ada unsur wujud atau tidak

Boolean mengandungi (Objek o)

digunakan untuk memeriksa keberadaan unsur tertentu, katakan o

int indexOf (Objek o)

Ia mengembalikan indeks elemen o

void removeRange (int s, int e)

membuang unsur dari vektor bermula dari s dan diakhiri dengan (e-1)

kosongkan ()

membuang semua elemen

kekosongan memastikan Kapasiti (int c)

java mempunyai-hubungan

Ia meningkatkan kapasiti dengan c

void setSize (int s)

Ini menetapkan ukuran untuk s. Sekiranya ukuran s>, kapasiti tambahan diisi dengan nilai nol. Sekiranya s

Elemen objek Di (int a)

mengembalikan elemen yang ada pada nombor indeks a

Set objek (int a, Objek o)

menggantikan elemen yang ada pada indeks a dengan elemen yang diberikan o

Objek [] keArray ()

mengembalikan tatasusunan yang mengandungi unsur yang sama dengan vektor

Klon objek ()

Objek vektor disalin

Boolean addAll (Koleksi c)

menambahkan semua elemen Koleksi c pada vektor

Boolean addAll (int a, Koleksi c)

memasukkan semua elemen Koleksi c ke vektor pada indeks yang ditentukan a

Boolean retainAll (Koleksi c)

mengekalkan semua elemen dalam vektor yang juga terdapat dalam Koleksi c

Senaraikan subList (int s, int e)

mengembalikan elemen, sebagai objek Senarai, bermula dari s dan diakhiri dengan (e-1) dari vektor.

Oleh kerana setiap perkara baik berakhir, begitu juga blog kami di Vectors di . Kami harap kami dapat merangkumi semua aspek vektor java dalam blog ini dan anda dapat mengumpulkan beberapa pengetahuan mengenai Vektor.

Pastikan anda berlatih sebanyak mungkin dan kembalikan pengalaman anda.

Lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kami di sini untuk membantu anda dalam setiap langkah dalam perjalanan anda, kerana selain daripada soalan wawancara java ini, kami menyediakan kurikulum yang dirancang untuk pelajar dan profesional yang ingin menjadi Pembangun Java.

Ada soalan untuk kami? Sila sebutkan di bahagian komen ‘Vectors in Java’ ini artikel dan kami akan menghubungi anda secepat mungkin.