Notes
Notes - notes.io |
Vector Sınıfı
java.util
Class Vector
java.lang.Object
|
+--java.util.AbstractCollection
|
+--java.util.AbstractList
|
+--java.util.Vector
Java dilinde Array’in ne kadar kullanışlı bir sınıf olduğunu görmüştük. Ancak, array’in uzunluğu; yani bileşenlerinin sayısı array bildiriminde belirleniyor ve bu uzunluk daha sonra değiştirilemiyordu. Bazı uygulamalarda, bu özelik ciddi bir handikap oluşturur. Java 2, bu sorunu çözmek için Vector sınıfını ve benzer işi yapan ArrayList sınıfını ortaya koydu. ArrayList senkronize olmadığı için Vector sınıfına göre daha hızlıdır. Elbette hızlı olmanın bir bedeli vardır. Senkronize olmaması demek, çoklu işlem ortamında güvenirliği azalır.
Java 2 sürümünde, Vector sınıfına ArrayList sınıfının bir çok metodu eklendi. Böylece, Vector sınıfı bir çok uygulamada Array sınıfının yerini aldı.
Vector sınıfı yalnızca nesneler içerebilir; ilkel veri tiplerini içeremez. İlkel veri tipleri kullanılacaksa, onların bir nesne içine konulması gerekir. Örneğin int tipinden Vector sınıfı tanımlanamaz, ama Integer sınıfından tanımlanabilir. int veri tipi, Integer sınıfı tarafından sarmalandığı için, sonunda int tipi içeren Vector sınıfı elde edilir.
VECTOR YARATMA
Programda Vector nesnesi yaratmak için ya java.util.Vector paketi ya da java.util.* paketi çağrılmalıdır. Bunu yapmak için, programın başına
import java.util.Vector;
ya da
import java.util.*;.
yazılmalıdır. Sonra aşağıdaki kurucularda istenen birisiyle vektör sınıfı yaratılır.
Vector Kurucuları (constructors)
Vector v = new Vector();
deyimi uzunluğu 10 olan boş bir vektör yaratır. Uzunluk belirtilmediği zaman, vektör sınıfının öntanımlı (default) uzunluğu daima 10 bileşendir.
Vector v = new Vector(Collection c);
deyimi belirtilen koleksiyonun öğelerini içeren bir vektör yaratır.
Vector v = new Vector(int başlangıçKapasitesi);
deyimi, başlangıç kapasitesi belirlenen boş bir vektör yaratır. Standart kapasite artışı 0 dır.
Vector v = new Vector(int başlangıçKapasite, int kapasiteArtışı);
deyimi, başlangıç kapasitesi belirlenen boş bir vektör yaratır. Kapasite artışı kapasiteArtışı ile verilen int değerdir.
Vector v = new Vector();
deyimi kullanılır. Bu deyim 10 bileşenli bir vektör yaratır; yani vektörün öntanımlı uzunluğu 10 dur. Eğer uzunluğu kendimiz belirlemek istiyorsak, örneğin 215 bileşenli bir vektör için
Vector v = new Vector(215);
deyimini yazarız.
VEKTÖRÜN UZUNLUĞUNU DEĞİŞTİRME
Vector, özünde bir arraydir; arrayden öneli farkı uzunluğunundeğiştirilebilir oluşudur. Vector’ün bileşenlerinin hepsine değer atanır ve yeni bileşen ekleme gereksemesi ortaya çıkarsa, teknik olarak yapılan iş şudur:
Mevcut vektörün bileşen sayısından bir fazla bileşeni olan bir Vector yaratılır. Eski Vector’ün bileşenleri, sırasıyla, yeni vektörün bileşenlerine aktarılır. En sona eklenen yeni bileşene yeni değer girilir. Tabii, bu işlem biraz zaman alıcıdır. O nedenle, gerekseme duyulacak bileşen sayısı başlangıçta biliniyorsa, vektör yerine array tercih edilmelidir.
Tabii, vektörün bileşenlerine ekleme yapılabildiği gibi, istenen bileşen silinebilir, bileşenlerin arasına yeni bileşen yerleştirilebilir.
VECTOR’E YENİ BİLEŞEN EKLEME
Vektöre yeni bileşen eklemek için
v.add(s); // v vektörünün sonuna yeni s bileşenini ekler
deyimi yazılır.
VECTOR’ÜN ÖĞELERİNİ LİSTELEME
Bir vektörün bütün bileşenlerini listelemek için, elbette for döngüsü kullanılabilir. Ama vektör sınıfı daha kolay bir yöntem sunar:
LİSTITERATOR
Aşağıdaki kod parçası ListIteratörün kullanılışını göstermektedir.
ListIterator iter = v.listIterator();
while (iter.hasNext()) {
System.out.println((String)iter.next());
}
VECTOR SINIFININ METOTLARI
Aşağıdaki tabloda v bir vektör, o bir nesne (object), i ise int tipinden bir damgadır (index).
Metot
Açıklama
v.add(o)
v vektörüne o nesnesini ekler
v.add(i, o)
i damgalı bileşeni bir sonraya iter, araya o nesnesini yerleştirir
v.clear()
v vektörünün bütün bileşenlerini siler
v.contains(o)
v vektörü o nesnesini içeriyorsa true, değilse false değerini alır
v.firstElement(i)
v vektörünün ilk bileşenini verir
v.get(i)
v vektörünün i-damgalı bileşenini verir
v.lastElement(i)
v vektörünün son bileşenini verir
v.listIterator()
v vektörünün bütün bileşenleri üzerinde sırayla geçer (döngü yapar)
v.remove(i)
v vektörünün i-damgalı bileşenini siler
v.set(i,o)
v vektörünün i-damgasını o objesine takar
v.size()
v vektörünün bileşen sayısını (uzunluğunu) verir
v.toArray(Object[])
v vektörünü nesne arrayine dönüştürür
ÖRNEKLER
Aşağıdaki örnek, boş bir vektör nesnesi yaratıyor, 0-ıncı damgadan başlayıp 4-üncü damgaya kadar bileşenlerine beş tane String ekliyor. Sonra 3-damgalı bileşene yeni bir String yerleştiriyor (araya giriyor). Bu işlem 3 ve 4 numaralı bileşenleri birer damga yukarıya kaydırıyor. Dolayısıyla vektörün bileşen sayısı 6 oluyor.
Vector01.java
import java.util.Vector;
public class Vector01 {
public static void main(String[] args) {
Vector<String> v = new Vector<String>();
/*
* Bu kurucu String tipinden boş bir vektör yarattı
* <E> vektörün öğe tipidir, burada String
* String, Integer, Object gibi bir nesne olabilir
* vektörün sonuna öğe ekleme
* vektörün bileşen damgaları 0 dan başlar
*/
v.add("Vector Object 0");
v.add("Vector Object 1");
v.add("Vector Object 2");
v.add("Vector Object 3");
v.add("Vector Object 4");
// indeksi belirli yere öğe yerleştir (araya gir)
v.add(3, "Damgası 3 olan bileşene girilen öğe");
// v.size() vektörün bileşen sayısını verir
System.out.println("Vektörün uzunluğu :"+v.size());
// Vektörün öğelerini listeler
for(int i=0; i < v.size(); i++)
{
System.out.println("Vektör öğesi : "+i+" :"+v.get(i));
}
}
}
Çıktı
Vektörün uzunluğu :6
Vektör öğesi : 0 :Vector Object 0
Vektör öğesi : 1 :Vector Object 1
Vektör öğesi : 2 :Vector Object 2
Vektör öğesi : 3 :Damgası 3 olan bileşene girilen öğe
Vektör öğesi : 4 :Vector Object 3
Vektör öğesi : 5 :Vector Object 4
Aşağıdaki örnek vektör metotlarının kullanılışını göstermektedir.
VectorDemo.java
import java.util.*;
public class VectorDemo {
public static void main(String[] args){
Vector<Object> vector = new Vector<Object>();
int primitiveType = 100;
Integer wrapperType = new Integer(200);
String str = "Başkent Ankara";
vector.add(primitiveType);
vector.add(wrapperType);
vector.add(str);
vector.add(2, new Integer(300));
System.out.println("vektörün öğeleri : " + vector);
System.out.println("vektörün uzunluğu : " + vector.size());
System.out.println("vektörün 2 numaralı bileşeni : " + vector.elementAt(2));
System.out.println("vektörün ilk öğesi : " + vector.firstElement());
System.out.println("vektörün son öğesi : " + vector.lastElement());
vector.removeElementAt(2);
Enumeration e=vector.elements();
System.out.println("vektörün öğeleri : " + vector);
while(e.hasMoreElements()){
System.out.println("öğeler : " + e.nextElement());
}
}
}
vektörün öğeleri : [100, 200, 300, Başkent Ankara]
vektörün uzunluğu : 4
vektörün 2 numaralı bileşeni : 300
vektörün ilk öğesi : 100
vektörün son öğesi : Başkent Ankara
vektörün öğeleri : [100, 200, Başkent Ankara]
öğeler : 100
öğeler : 200
öğeler : Başkent Ankara
|
Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 12 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team