Merhaba arkadaşlar bu yazımızda Collections konusunu inceleyeceğiz.
Collections Nedir?Koleksiyonlar Java ‘da bir nesnedir. İçinde birden fazla öğe bulundurur. Öğeler, veri gruplarından oluşur; sıralı ya da sırasız olabilirler. Diziler gibi düşünülebilir ancak koleksiyonlar dizilerden daha fazlasını yapabilirler.
- List: nesnelerden oluşan topluluk.İçerisinde tekrarlama olabilir, belirli
bir sıralaması vardır.
- Set: Sırası olmayan ve tekrarlayan elemanı olmayan nesneler topluluğudur. Sırası olmadığı için ögeleri belirli yerlere yerleştiremeyiz. Yani ögelerin yeri belirsizdir.
- HashSet
HashSet
- TreeSet: Adından da anlaşılacağı üzere ağaç yapısını kullanır.
TreeSet
nesneadi.add() ile eleman ekleme işlemi gerçekleştirilir. Aşağıdaki örnekte Sabahattin Ali ismini 3 defa eklememize rağmen yalnızca bir kez çıktı verdiğne dikkat ediniz:
import java.util.*;
public class bar {
public static void main(String[] args) {
HashSet <string> hs1 = new HashSet <string>();
hs1.add("Cemal Sureya");
hs1.add("Nazim Hikmet");
hs1.add("Turgut Uyar");
hs1.add("Orhan Veli");
hs1.add("Sabahattin Ali");
hs1.add("Sabahattin Ali");
hs1.add("Sabahattin Ali");
System.out.println("Yazarlarin HashSet ile Sirasiz Hali:" +hs1);
TreeSet <string> trees1= new TreeSet <string> (hs1);
System.out.println("TreeSet ile Alfabetik Sirali Hali:" + trees1);
}
}
/*
www.yazilimkaravani.net
Ali Murat Çevik - 2018
*/
EKRAN ÇIKTISI:
Yazarlarin HashSet ile Sirasiz Hali:[Nazim Hikmet, Orhan Veli, Turgut Uyar, Sabahattin Ali, Cemal Sureya]TreeSet ile Alfabetik Sirali Hali:[Cemal Sureya, Nazim Hikmet, Orhan Veli, Sabahattin Ali, Turgut Uyar]
Iterator, elemanlar arası istenilen yönde ilerlemek için kullanılır.
Iterator degiskenAdi = list_değişkeni.iterator();
next() : Bir sonraki elemanı çağırır
hasNext(): Bir sonraki eleman var mı kontrol eder.
remove(): next() yöntemi ile döndürülen son elemanı siler.
Iterator örneği yapalım:
import java.util.*;
public class bar {
public static void main(String[] args) {
HashSet hSet = new HashSet();
hSet.add("Piraye");
hSet.add("Uvercinka");
hSet.add("Anadolu");
hSet.add("Hasret");
hSet.add("Hasret"); //yalnizca bir tanesini ekleyecek
Iterator i = hSet.iterator();
while (i.hasNext()) {
System.out.println("Eser Adlari:" + i.next());
i.remove();
}
System.out.println("Liste Silindi!\n" + hSet);
}
}
EKRAN ÇIKTISI:
Eser Adlari:Piraye
Eser Adlari:Uvercinka
Eser Adlari:Anadolu
Eser Adlari:Hasret
Liste Silindi![]
– SortedSet: Artan sırada sıraya dizilmiş nesneler kümesidir.
– Map: her öğesine bir anahtar atanmış nesneler topluluğudur.
– SortedMap: Anahtarlarına göre artan sırada dizilmiş nesneler topluluğudur.
Liste
Elemanları sıralı bir şekilde bulundurur. Elemanların tekrarlanmasına izin verilir. Stack, ArrayList, Vector,LinkedList gibi veri yapıları list sınıfından türetilmiştir.
Linked List kullanımı:
LinkedList
add(): eleman ekler
clear(): tüm elemanları siler
get (indis): belirtilen indisteki elemanı seçer
set(a, b): b’deki elemanı, a’ya yerleştirir
remove (int indis): belirtilen indisteki elemanı listeden kaldırır
size(): listenin kaç elemandan oluştuğunu söyler
toArray(): listeyi diziye çevirir
Queue
Data Structures ın en önemli konularından birisi olan Queue(kuyruk) yapısını Java’ da inceleyelim. Kuyruk yapısının özelliği ilk eklenen elemanın ilk olarak silinmesidir. (FIFO: First In First Out) Aradaki elemanlara işlem yapmaz. Günlük hayattan örnek verecek olursak bir bankada sıra bekleyen müşteriler diyebiliriz.
Queue
şeklinde tanımlanır. Bir örnek ile daha iyi anlayalım:
import java.util.*;
public class bar {
public static void main(String[] args) {
Queue <string> edebiyat = new LinkedList<string>();
edebiyat.offer("Göğe Bakma Durağı,");
edebiyat.offer("Memleketim,");
edebiyat.offer("Hasretinden Prangalar Eskittim,");
System.out.println("Şiirler Kuyruğa Ekleniyor" + edebiyat);
System.out.println("Şiirler Kuyruktan çıkartılıyor");
while (!edebiyat.isEmpty())
System.out.print(edebiyat.remove() + " ");
}
}
/*
www.yazilimkaravani.net
Ali Murat ÇEVİK - 2018
*/
EKRAN ÇIKTISI
Şiirler Kuyruğa Ekleniyor[Göğe Bakma Durağı,, Memleketim,, Hasretinden Prangalar Eskittim,]
Şiirler Kuyruktan çıkartılıyor
Göğe Bakma Durağı, Memleketim, Hasretinden Prangalar Eskittim,
Vector
Yalnızca nesneler içerebilir. Temel veri tiplerini içeremez. Bunların yerine nesnel veri tip karşılığı kullanılmalıdır.
Vector
Array List
ArrayList
import java.util.*;
public class bar {
public static void main(String[] args) {
Vector<integer> v1 = new Vector<integer>();
v1.add(100);
v1.add(300);
v1.add(200);
v1.add(400);
v1.add(500);
v1.add(98);
Object[] dizi = v1.toArray();
for (int i = 0; i < dizi.length; i++){
System.out.println(dizi[i]);
}
Arrays.sort(dizi); //dizi elemanları sıralandı
System.out.println("En küçük eleman..:" +dizi[0]);
}
}
/*
www.yazilimkaravani.net
Ali Murat ÇEVİK - 2018
*/
EKRAN ÇIKTISI:
100
300
200
400
500
98
En küçük eleman..:98
İyi çalışmalar 🙂