Java'da Vektör | Örneklerle Java Vektör Sınıfı
Yayınlanan: 2021-05-26Programlamada en yaygın olarak kullanılan veri yapılarından biri Java'da Vector'dür. Diziler , verileri doğrusal olarak depolayabilen statik veri yapılarıdır. Benzer şekilde, Java'daki vektör de verileri doğrusal olarak depolar, ancak bunlar sabit bir boyutla sınırlı değildir. Bunun yerine, boyutu ihtiyaca göre büyüyebilir veya küçülebilir. Üst sınıf, AbstractList sınıfıdır ve Liste Arayüzü üzerinde uygulanır.
Vektörleri kullanmaya başlamadan önce, java.util.package'den aşağıdaki gibi içe aktarın:
java.util.Vector'u içe aktar
İçindekiler
Bir Vektörün Tanımlanması ve Elemanlarının Değerlendirilmesi
Java'da bir vektör şu şekilde bildirilir:
public class Vector<V>, AbstractList<V> öğesini genişletir
List<V>, RandomAccess, Cloneable, Serializable uygular
Burada V, int, string, char vb. olabilen öğe türüdür.
Dizilerdeki veri üyelerine eriştiğimiz gibi, bunu vektörlerde de elemanın indeksini kullanarak yapabiliriz. Örneğin, Vektör E'nin ikinci elemanına E[2] olarak erişilebilir.
Java'da bir vektör bildirirken yapılan bazı yaygın hatalar:
- Vektörün başlangıç boyutu negatif bir değerse bir IllegalArgumentException oluşturulur
- Belirtilen koleksiyon boşsa bir NullPointerException oluşturulur
- Vektörün boyutu, vektörün kapasitesinden küçük veya buna eşit
- Vektör artışı belirtilmemişse kapasite her artış döngüsünde ikiye katlanır
yapıcılar
1. Vektör(int initialCapacity, int Artış)
Bu, Java'da belirtildiği gibi bir başlangıç kapasitesine sahip bir vektör oluşturur ve artış da belirtilir. Artışla, vektör yukarı doğru her yeniden boyutlandırıldığında tahsis edilen eleman sayısı belirtilir.
Sözdizimi: Vector<V> e = new Vector<V>(int initialCapacity, int Artış);
2. Vektör(int initialCapacity)
Java'da, belirtilen boyuta eşit bir başlangıç kapasitesine sahip bir vektör oluşturur.
Sözdizimi: Vector<V> e = new Vector<V>(int initialCapacity);
3. Vektör()
Java'da ilk varsayılan kapasitesi 10 olan bir vektör oluşturur.
Sözdizimi: Vector<V> e = new Vector<V>();
4. Vektör(Koleksiyon c)
Java'da, c koleksiyonundaki öğeleri olan bir vektör oluşturur.
Sözdizimi: Vector<V> e = new Vector<V>(Koleksiyon c);
Java'da bir vektörün oluşturulmasını ve kullanımını gösteren bir örnek:
kod
java.util.* dosyasını içe aktarın;
genel sınıf Ana{
public static void main(String[] args)
{
// Varsayılan vektör oluştur
Vektör a = yeni Vektör();
// Belirtilen Boyutta bir vektör oluştur
Vektör b = yeni Vektör(20);
// Belirtilen Boyut ve Artışta bir vektör oluşturun
Vektör c = yeni Vektör(30,10);
b.add(100);
b.add(200);
b.add(300);
// Belirtilen koleksiyona sahip bir vektör oluştur
Vektör d = yeni Vektör(b)
System.out.println(“A kapasite vektörü ” + a.kapasite());
System.out.println(“B vektörü kapasite ” + b.kapasite());
System.out.println(“c kapasite vektörü ” + c.kapasite());
System.out.println(“d kapasite vektörü ” + d.kapasite());
}}
Çıktı
Not: .capacity(), vektörün kapasitesini döndürmek için kullanılır.
Java'daki bir vektörün aşağıdaki gibi üç korumalı parametresi vardır:
1. Int elementCount()- Bir vektörün içerdiği eleman sayısını söyler
2. Int capcityIncremen()- Vektörün boyutu kapasiteden büyük olduğunda, kapasite bununla otomatik olarak artırılır.
3. Object[] elementData()- Vektörün elemanları dizide saklanır.
yöntemler
Java'da sık kullanılan bazı vektör yöntemleri:
1. Öğe Ekle
Boolean add(Object o)- Vektörün sonuna bir eleman eklenir
Void add( int index V element)- Verilen element, vektörde belirtilen dizine eklenir
Java'da Vector içindeki öğeleri ekleme kodu:
java.util.* dosyasını içe aktarın;
java.io'yu içe aktar*;
genel sınıf AddElementsToVector {
public static void main(String[] arg)
{
// Varsayılan bir vektör oluştur
Vektör a = yeni Vektör();
// add() yöntemini kullanarak eleman ekleme
a.add(1);
a.add(2);
a.add(“vect”);
a.add(“için”);
a.add(3);
System.out.println(“a vektörü ” + a);
// Genel bir vektör oluştur
Vector<Integer> b = new Vector<Integer>();
b.add(0);
b.add(1);
b.add(2);
System.out.println(“B vektörü ” + b dir);
}
}
Çıktı
2. Öğeleri Kaldır
Boolean Remove(object o) – vektörde belirtilen dizindeki öğeyi kaldırmak için kullanılır
Öğe kaldırıldığında, tüm öğeler boşlukları doldurmak için sola kaydırılır; endeksler daha sonra güncellenir.
Java'da vektörden öğelerin kaldırılmasını gösteren kod:
java.util.* dosyasını içe aktarın;
java.io'yu içe aktar*;
public class Kaldır {
public static void main(String[] arg)
{
// Varsayılan bir vektör oluştur
Vektör a = yeni Vektör();
// add() yöntemini kullanarak eleman ekleme
a.add(1);
a.add(2);
a.add(“vect”);
a.add(“için”);
a.add(4);
// Öğeyi kaldır
a.kaldır(2);
// Kontrol
System.out.println(“kaldırıldıktan sonra: ” + a);
}
}
Çıktı
Checkout: Java'da başarılı bir kariyer nasıl yapılır?
3. Öğeleri Değiştir
Öğeleri ekledikten sonra öğeyi değiştirmek için set() yöntemi kullanılabilir. Elemanın indeksi, bir vektör indekslendiğinde referans alınabilir. Bu yöntem dizini ve güncellenen öğeyi alır.
Java'da vektördeki öğeleri değiştirmek için kod
java.util.* dosyasını içe aktarın;
genel sınıf Güncellemesi {
public static void main(String args[])
{
// Boş bir Vektör oluştur
Vector<Integer> a = new Vector<Integer>();
// Eleman ekle
a.add(1);
a.add(2);
a.add(3);
a.add(10);
a.add(20);
// Görüntülemek
System.out.println(“Vektör: ” + a);
// Yer değiştirmek
System.out.println(“Değiştirme”
+ a.set(0, 22));
System.out.println(“Değiştirme”
+ a.set(4, 50));
// Değiştirilen vektörü göster
System.out.println(“Yeni Vektör:” + a);
}
}
Çıktı
4. Vektörü Yineleyin
Bir vektörde döngü yapmanın birkaç yolu vardır. Bunlardan biri get() yöntemidir. Java'da bir Vector içindeki öğeleri yinelemek için bir program:
java.util.* dosyasını içe aktarın;
public class Yineleme {
public static void main(String args[])
{
// bir vektör örneği oluşturma
Vector<String> a = new Vector<>();
// add() yöntemini kullanarak eleman ekleyin
a.add(“vektör”);
a.add(“in”);
a.add(1, “java”);
// Get yöntemini ve for döngüsünü kullanın
for (int i = 0; i < a.size(); i++) {
System.out.print(a.get(i) + ” “);
}
System.out.println();
// Her döngü için kullan
(Dize str : a) için
System.out.print(str + ” “);
}
}
Çıktı
Okuyun: Java Mimarisi ve Bileşenleri
Diğer Önemli Yöntemler
- Int size() – vektörün boyutunu döndürmek için kullanılır
- Object get(int index) – öğeyi vektörde belirtilen konuma döndürmek için kullanılır
- Object firstElement() – Java'da vektörün ilk öğesini döndürmek için kullanılır
- Object lastElement() – Java'da vektörün son öğesini döndürmek için kullanılır
- Boolean equals(Object o) – vektörü verilen nesne ile eşitlik için karşılaştırmak için kullanılır. Tüm öğeler kendi dizinlerinde doğruysa true döndürür
- Void trimtosize() – ek kapasiteyi kaldırmak ve kapasiteyi boyuta eşit tutmak için kullanılır
Vektörler Hakkında Daha Fazlası
- Java'daki bir vektör, bir tamsayı dizini kullanılarak erişilebilen dinamik bir veri yapısıdır.
- ArrayList'e benzer olsa da, senkronize edilir ve koleksiyon çerçevesinde mevcut olmayan bazı eski yöntemleri içerir.
- Ekleme sırası korunur.
- İş parçacığı olmayan bir ortamda nadiren kullanılır.
- Senkronizasyon nedeniyle vektörler, öğeleri arama, ekleme, güncelleme ve silme konusunda zayıf bir performansa sahiptir.
- Vektör sınıfının yineleyicileri hızlı bir şekilde başarısız olur ve eşzamanlı değişiklik durumunda ConcurrentModificationException'ı atar.
- Yığın, doğrudan bilinen alt sınıfıdır.
Vektörlerde Bellek Tahsisi
Yukarıda görüldüğü gibi vektörlerin tanımlanmış bir boyutu yoktur. Bunun yerine, Java'daki bir vektör, boyutunu dinamik olarak değiştirebilir. Vektörlerin öğeleri depolamak için belirsiz bir alan ayırdığı varsayılır. Ancak, öyle değil. Vektörün boyutu iki alana göre değiştirilir - 'kapasite artışı' ve 'kapasite'.
Bir vektör bildirildiğinde, boyuta eşit bir 'kapasite' alanı tahsis edilir ve kapasiteye eşit elemanlar eklenebilir. Bir sonraki eleman eklenir eklenmez, dizinin boyutu 'capacityIncrement' boyutu kadar artırılır. Bu, vektöre boyutunu değiştirme yeteneği verir; yeni bir öğe eklendiğinde varsayılan kurucu için kapasite iki katına çıkar.
Dünyanın En İyi Üniversitelerinden Online Yazılım Kursları Öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Java'da Vector'in Avantajları
Vektörlerin dinamik boyutu, bellek israfını önler ve veri yapımızın boyutu, programın ortasında herhangi bir zamanda değiştirilebilir.
Hem vektörler hem de ArrayLists dinamiktir. Bununla birlikte, vektörler şu şekilde daha avantajlıdır:
- Vektörler senkronize edilir.
- ArrayLists üzerinde uygulanamayan bazı eski işlevlere sahiptir.
Çözüm
Java'daki bir vektör, Java 1.2'den beri Java Toplama Çerçevesinin bir parçası olan, boyut sınırı olmayan dinamik bir dizidir. Bu blogda çeşitli yapıcıları ve yaygın olarak kullanılan vektör yöntemlerini gördük. Ayrıca Vector sınıfının yalnızca iş parçacığı için güvenli bir ortamda kullanılması gerektiğine de dikkat edilmelidir.
Java, OOP'ler ve tam yığın yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin Yazılım Geliştirmede Yönetici PG Programına göz atın - Çalışan profesyoneller için tasarlanmış ve 500+ saat sunan Tam Yığın Geliştirmede Uzmanlık titiz eğitim, 9+ proje ve ödevler, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
Java'da vektör nedir?
Vektör, Java'daki bir veri yapısıdır. Adından da anlaşılacağı gibi, bir vektör bir tür element dizisidir. Erişildikçe büyüyen ve küçülen dinamik bir dizi kullanır. Vektörün geçerli boyutunu almak için bir size() yöntemine ve vektörün kapasitesini almak için bir Capacity() yöntemine sahiptir. Bu iki yöntem, sıfırdan büyük değerleri döndürür. Vektörün kapasitesi, yeni bir dizi tahsis etmek zorunda kalmadan vektör içinde saklanabilen eleman sayısıdır. Vektörün boyutu, şu anda vektör içinde depolanan öğelerin sayısıdır.
Vektörlerin dizilere göre avantajları nelerdir?
Diziler sabit boyuttadır, yani gerektiği gibi büyüyemez veya küçülemezler. Vektörler, dinamik olarak yeniden boyutlandırılabilir diziler olarak uygulanır ve gerektiğinde büyümelerine ve küçülmelerine olanak tanır. Bu, verilerin sürekli büyümesi için yararlıdır; örneğin, metin dosyalarını satır satır okuyan bir program, dosyanın boyutuyla birlikte büyüyebilecektir. Vektörler genellikle dizilerden daha verimlidir. Bunun nedeni, vektörlerin başvuru dizileri (java.lang.Objects) olarak uygulanması, dizilerin ise nesne dizileri olarak uygulanmasıdır.
Java'da ArrayList nedir?
Class ArrayList, dinamik bir diziyi temsil eder. Yeni unsurları barındırmak için gerektiği kadar büyüyebilir. Dizi aslında nesnelere yapılan başvuruların bir listesi olarak uygulanır. Bir öğenin oluşturulması gerektiğinde, yeni bir nesneye referans sağlanır. Bu, ArrayList'in dinamik olarak yeniden boyutlandırılabilir bir liste olarak uygulanması nedeniyle mümkündür. ArrayList, yöntemlerinin ve alanlarının çoğunu AbstractList'ten devralır. ArrayList, yeni nesneler oluşturmak zorunda olmadığı için bir diziden daha hızlıdır. Ekleme, ayarlama ve kaldırma gibi dizinin boyutunu değiştiren mutasyona uğratma yöntemleri, dizinin boyutunu kalıcı olarak değiştirdikleri için yıkıcı yöntemler olarak adlandırılır.