Java'da Vektör nedir ve nasıl kullanılır?

'Java'da Vektörler' hakkındaki bu blog, vektör sınıfının ArrayList'ten ne kadar farklı olduğunu anlamanıza ve ilgili farklı yöntemleri öğrenmenize yardımcı olacaktır.

Vektörler programlama dünyasında en sık kullanılan veri yapılarından biridir.Hepimiz bunu biliyoruz Diziler verileri doğrusal bir şekilde tutan veri yapılarıdır. Vektörler de verileri doğrusal bir şekilde depolar, ancak Dizilerden farklı olarak sabit bir boyuta sahip değildirler. Bunun yerine, boyutları talep üzerine artırılabilir.



Vector sınıfı bir alt sınıftır Özet Listesi sınıf ve uygular Liste .Vektörleri kullanmak için önce Vector sınıfını java.util paketinden içe aktarmamız gerekir:



java.util.Vector dosyasını içe aktar

Bu yazıda, aşağıdaki vektör kavramlarını tartışacağız:



Başlayalım!

Avantajı Java'da Vektörler

  • Dinamik boyuta sahip olma özelliği, büyüklüğünü bilmediğimiz durumlarda bellek israfını önlediği için çok kullanışlıdır. veri yapısı beyan anında.
  • Bir programın ortasında veri yapımızın boyutunu değiştirmek istediğimizde, vektörler çok faydalı olabilir.

Dinamik boyuta sahip olma özelliği, Java'daki Vektörlere özgü değildir. ArrayList olarak bilinen başka bir veri yapısı da dinamik bir boyuta sahip olma özelliğini gösterir. Ancak Vektörler, birkaç nedenden dolayı Dizi Listelerinden farklıdır:

  • İlk olarak, Vektörler senkronize edilir, bu da ona bir avantaj sağlar ile kıyaslandığında Veri bozulması riskleri olduğu için programlar.
  • İkinci olarak, Vektörler, yalnızca vektörler üzerinde uygulanabilen ve Dizi Listelerinde uygulanamayan bazı eski işlevlere sahiptir.

Vektördeki Öğelere Nasıl Erişilir

Veri üyelerine, tıpkı Dizilerdeki öğelere eriştiğimiz gibi, öğenin indeksini kullanarak erişebiliriz.



Misal- Bir v vektöründeki üçüncü elemana erişmek istiyorsak, ona sadece v [3] diyoruz.

Vektörler Oluşturucular

Aşağıda, vektörün çoklu varyasyonları listelenmiştir inşaatçılar kullanmaya müsait:

  1. Vektör (int initialCapacity, int Increment) - Verilen initialCapacity ve onun boyut artışına sahip bir vektör oluşturur.
  2. Vektör (int initialCapacity) - Verilen initialCapacity ile boş bir vektör oluşturur. Bu durumda Artış sıfırdır.
  3. Vektör() - Varsayılan kapasite vektörü oluşturur 10.
  4. Vektör (Koleksiyon c) - Belirli bir koleksiyonla bir vektör oluşturur, öğelerin sırası koleksiyonun yineleyicisi tarafından döndürülenle aynıdır.

Vektörlerde ayrıca üç korumalı parametre vardır

  1. Toplam kapasite Artışı () - Boyut kapasiteyi aştığında, vektörün kapasitesini otomatik olarak artırır.
  2. Int elementCount () - vektördeki öğelerin sayısını söyle
  3. Nesne [] elementData () - vektör elemanlarının depolandığı dizi

Vektörlerin Beyanında En Yaygın Hatalar

  • Vektör bir IllegalArgumentException tanımlanan vektörün InitialSize negatifse.
  • Belirtilen koleksiyon boşsa, atar NullPointerException

Not:

  1. Vektör artışı belirtilmezse, kapasitesi olacaktırher artış döngüsünde iki katına çıktı.
  2. Bir vektörün kapasitesi büyüklüğün altında olamaz, ona eşit olabilir.

Vektör Oluşturucularını başlatmanın bir örneğini ele alalım.

Örnek: Vektör Oluşturucuları Başlatma

/ Vektör Oluşturucuları gösteren Java kodu java.util içe aktarılır. * Public class Main {public static void main (String [] args) {// varsayılan vektör oluştur Vektör v1 = new Vector () // verilen Boyut Vektörünün bir vektörünü oluşturun v2 = new Vector (20) // verilen Boyut ve Artış Vektörünün bir vektörünü oluştur v3 = new Vector (30,10) v2.add (100) v2.add (100) v2.add (100) // verilen bir vektör oluştur collection Vector v4 = new Vector (v2) System.out.println ('Vektör v1 kapasite' + v1.capacity ()) System.out.println ('Vektör v2 kapasite' + v2.capacity ()) System.out .println ('Kapasitenin vektör v3'ü' + v3.capacity ()) System.out.println ('Kapasitenin vektör v4'ü' + v4.capacity ())}

Çıktı

Oluşturucular - Java

Vektörlerin bellek tahsisi

Şimdiye kadar Vektörlerin sabit bir boyuta sahip olmadığını, bunun yerine boyutlarını dinamik olarak değiştirebileceklerini anlamış olmalısınız. Vektörlerin nesneleri depolamak için belirsiz uzun alan ayırdığı düşünülebilir. Ancak durum bu değil. Vektörler boyutlarını 'kapasite' ve 'kapasite artışı' olmak üzere iki alana göre değiştirebilir. Başlangıçta, bir vektör bildirildiğinde 'kapasite' alanına eşit bir boyut tahsis edilir. Kapasiteye eşit elemanlar ekleyebiliriz. Ancak, bir sonraki öğe eklenir eklenmez, dizinin boyutunu 'CapacityIncrement' boyutuna göre artırır. Böylelikle boyutunu dinamik olarak değiştirebilmektedir.

Bir varsayılan kurucu , kapasite dolduğunda ve yeni bir eleman ekleneceği zaman kapasite ikiye katlanır.

Misal - Bir InitialCapacity 5 vektörümüz olduğunu ve Kapasite artışı Yani vektörün başlangıç ​​boyutu 5 elementtir Bu vektöre tek tek yani 1,2,3,4,5 5 element ekliyoruz. Vektöre başka bir eleman, yani 6 eklemeye çalıştığımızda, vektörün boyutu 2 artırılacaktır. Dolayısıyla vektörün boyutu artık 7'dir. Böylece vektör, boyutunu no. öğelerin.

Bir başka ilginç nokta ise, dizilerden farklı olarak vektörlerin gerçek nesneler içermemesi, sadece nesnelere referanslar içermesidir. Bu nedenle, farklı veri türlerindeki nesnelerin aynı vektörde depolanmasına izin verir.

Vektördeki Yöntemler

Şimdi çok sık kullanılan birkaç vektör yöntemine bir göz atalım.

  • Boolean ekleme (Nesne o) - Vektörün sonuna bir öğe ekler.
// Boolean add () yöntemini gösteren Java kodu import java.util. * Public class Ana {public static void main (String [] args) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (1 ) // Listenin sonuna 1 ekler v.add ('Java') // Listenin sonuna 'Java' ekler v.add ('eşittir') // Ekler 'eşittir' sonuna list v.add ('Eğlence') // System.out.println listesinin sonuna 'Eğlence' ekler ('Vektör' + v)}}

Çıktı

  • Void add (int Index, E element) - Verilen elemanı vektörde belirtilen dizine ekler
// void add () yöntemini gösteren Java kodu import java.util. * Public class Ana {public static void main (String [] değiştirgeler) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (0 , 1) // 0 dizinine 1 ekler v.add (1, 'Java') // Dizin 1'e 'Java' ekler v.add (2, 'eşittir') // Dizine 'eşittir' ekler 2 v.add (3, 'Eğlence') // Dizine 'Eğlence' ekler 3 v.add (4, '!!!') // Dizine 'Eğlence' ekler 4 System.out.println (' Vektör '+ v)}}

Çıktı

  • Boolean Kaldır (nesne o) - Vektörde verilen dizindeki öğeyi kaldırır
// Boolean remove () yöntemini gösteren Java kodu import java.util. * Public class Ana {public static void main (String [] args) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (1 ) // Listenin sonuna 1 ekler v.add ('Java') // Listenin sonuna 'Java' ekler v.add ('eşittir') // Ekler 'eşittir' sonuna list v.add ('Eğlence') // System.out.println listesinin sonuna 'Eğlence' ekler ('Kaldırmadan önce vektör' + v) v.remove (1) System.out.println ('Sonra vektör kaldırma '+ v)}}

Çıktı

ikiliyi ondalık java'ya dönüştür
  • Boolean removeElement ( Nesne obj) - Elemanı obj ismine göre siler (indeks numarasına göre değil)
// removeElement () yöntemini gösteren Java kodu import java.util. * Public class Ana {public static void main (String [] args) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (1) // Listenin sonuna 1 ekler v.add ('Java') // Listenin sonuna 'Java' ekler v.add ('eşittir') // Listenin sonuna 'eşittir' ekler v.add ('Eğlence') // System.out.println listesinin sonuna 'Eğlence' ekler ('Kaldırmadan önce vektör' + v) v.removeElement ('Java') System.out.println ('Vektör kaldırıldıktan sonra '+ v)}}

Çıktı

  • İç boyut () - Vektörün boyutunu döndürür.
// size () yöntemini gösteren Java kodu import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (0, 1) // 0 dizinine 1 ekler v.add (1, 'Java') // 1. dizine 'Java' ekler v.add (2, 'eşittir') // 2. dizine 'eşittir' ekler v.add (3, 'Eğlence') // 3 System.out.println dizinine 'Eğlence' ekler ('Vektör boyutu' + v.size ())}}

Çıktı

  • Int Kapasite () - Vektörün kapasitesini döndürür
// Capacity () yöntemini gösteren Java kodu import java.util. * Public class Main {public static void main (String [] args) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (0, 1) // 0 dizinine 1 ekler v.add (1, 'Java') // 1. dizine 'Java' ekler v.add (2, 'eşittir') // 2. dizine 'eşittir' ekler v.add (3, 'Eğlence') // 3 System.out.println dizinine 'Eğlence' ekler ('Vektör kapasitesi' + v.capacity ())}}

Çıktı

  • Object get (int indeksi) - Vektörde verilen konumdaki elemanı döndürür
// get () yöntemini gösteren Java kodu import java.util. * Public class Ana {public static void main (String [] değiştirgeler) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (1) // Listenin sonuna 1 ekler v.add ('Java') // Listenin sonuna 'Java' ekler v.add ('eşittir') // Listenin sonuna 'eşittir' ekler v.add ('Eğlence') // System.out.println listesinin sonuna 'Eğlence' ekler ('1. dizindeki öğe' + v.get (1))}}

Çıktı

  • Object firstElement () - İlk öğeyi döndürür
// firstElement () yöntemini gösteren Java kodu import java.util. * Public class Ana {public static void main (String [] args) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (1) // Listenin sonuna 1 ekler v.add ('Java') // Listenin sonuna 'Java' ekler v.add ('eşittir') // Listenin sonuna 'eşittir' ekler v.add ('Eğlence') // System.out.println listesinin sonuna 'Eğlence' ekler ('İlk eleman' + v.firstElement ())}}

Çıktı

  • Object lastElement () - Son öğeyi döndürür
// lastElement () yöntemini gösteren Java kodu import java.util. * Public class Ana {public static void main (String [] değiştirgeler) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (1) // Listenin sonuna 1 ekler v.add ('Java') // Listenin sonuna 'Java' ekler v.add ('eşittir') // Listenin sonuna 'eşittir' ekler v.add ('Eğlence') // System.out.println listesinin sonuna 'Eğlence' ekler ('Son eleman' + v.lastElement ())}}

Çıktı

  • Boole eşittir (Object o) - Vektörü eşitlik için belirtilen nesneyle karşılaştırır. Tüm öğeler karşılık gelen indekslerinde doğruysa true döndürür
// Boolean equals () yöntemini gösteren Java kodu import java.util. * Public class Ana {public static void main (String [] args) {Vector v = new Vector () // Varsayılan bir vektör oluşturur Vector vcopy = new Vector () v.add (1) // Listenin sonuna 1 ekler v.add ('Java') // Listenin sonuna 'Java' ekler v.add ('eşittir') // Ekle ' 'listenin sonunda' v.add ('Eğlence') // Listenin sonuna 'Eğlence' ekler vcopy.add (0,1) // 0 dizinine 1 ekler vcopy.add (1, 'Java') // 1. dizine 'Java' ekler vcopy.add (2, 'is') // 2. dizine 'is' ekler vcopy.add (3, 'Eğlence') // 'Eğlence' ekler dizin 3'te vcopy.add (4, '!!!') // 4. dizine 'Eğlence' ekler if (v.equals (vcopy)) System.out.println ('Her iki vektör de eşittir') else System .out.println ('Vektörler eşit değildir')}}

Çıktı

  • Void trimtosize () - Bu yöntem, ekstra kapasiteyi ortadan kaldırır ve kapasiteyi sadece elemanları tutma, yani boyuta eşit tutar.
// trimToSize () yöntemini gösteren Java kodu import java.util. * Public class Ana {public static void main (String [] args) {Vector v = new Vector () // Varsayılan bir vektör oluşturur v.add (0, 1) // 0 dizinine 1 ekler v.add (1, 'Java') // 1. dizine 'Java' ekler v.add (2, 'eşittir') // 2. dizine 'eşittir' ekler v.add (3, 'Eğlence') // 3 System.out.println dizinine 'Eğlence' ekler ('Vektör kapasitesi' + v.capacity ()) v.trimToSize () System.out.println ( 'Vektör kapasitesi' + v.capacity ())}}

Çıktı


Diğerleri Önemli Yöntemler

Şimdiye kadar vektörlerle nasıl çalışılacağı konusunda iyi bir fikre sahip olmalısınız. Vektör yöntemlerinden daha fazlasını keşfetmek isterseniz, aşağıdaki tabloya bir göz atın.

Yöntemin Adı Yöntemin İşlevi

Boolean isEmpty ()

elemanların var olup olmadığını kontrol eder

Boole, (Object o) içerir

belirli bir öğenin varlığını kontrol etmek için kullanılır, örneğin o

int indexOf (Nesne o)

O öğesinin dizinini döndürür

void removeRange (int s, int e)

s'den başlayıp (e-1) ile biten vektördeki öğeleri kaldırır

void temizle ()

tüm unsurları kaldırır

void sureCapacity (int c)

Kapasiteyi c kadar artırır

void setSize (int s)

Boyutu s olarak ayarlar. S> boyut ise, ekstra kapasite boş değerlerle doldurulur. Eğer s

Object elementAt (int a)

a dizin numarasında bulunan öğeyi döndürür

Nesne kümesi (int a, Nesne o)

a dizininde bulunan öğeyi verilen o öğesiyle değiştirir

Nesne [] toArray ()

vektörle aynı öğeleri içeren bir dizi döndürür

Nesne klonu ()

Vektör nesnesi kopyalandı

Boolean addAll (Koleksiyon c)

c Koleksiyonunun tüm öğelerini vektöre ekler

Boolean addAll (int a, Koleksiyon c)

Koleksiyonun tüm öğelerini ekler c belirtilen indekste vektöre

Boolean tutma Tümü (Koleksiyon c)

c Koleksiyonunda da var olan vektördeki tüm öğeleri korur

hadoop öğrenmek zor

Liste alt listesi (int s, int e)

s'den başlayıp vektörden (e-1) ile biten öğeleri List nesnesi olarak döndürür.

Her iyi şeyin sona ermesi gibi, Vektörler hakkındaki blogumuz da . Bu blogda java vektörlerinin tüm yönlerini ele alabildiğimizi ve Vektörler hakkında biraz bilgi toplayabildiğinizi umuyoruz.

Mümkün olduğunca çok pratik yaptığınızdan ve deneyiminizi geri aldığınızdan emin olun.

Kontrol et Dünya çapında 250.000'den fazla memnun öğrenciden oluşan bir ağa sahip güvenilir bir çevrimiçi öğrenme şirketi olan Edureka tarafından. Yolculuğunuzun her adımında size yardımcı olmak için buradayız, bu java mülakat sorularının yanı sıra, Java Geliştiricisi olmak isteyen öğrenciler ve profesyoneller için tasarlanmış bir müfredat hazırlıyoruz.

Bizim için bir sorunuz mu var? Lütfen bu 'Java'da Vektörler' in yorumlar bölümünde bahsedin makale ve en kısa sürede size geri döneceğiz.