Set (HashSet, LinkedHashSet, TreeSet)
🎯 1. Set Nedir?
Section titled “🎯 1. Set Nedir?”Set arayüzü, Java Collections Framework içinde yer alır ve tekrarlanan (duplicate) elemanlara izin vermez.
Yani her eleman benzersiz (unique) olmalıdır.
📦 Paket:
java.util.*
🔹 2. Set Türleri
Section titled “🔹 2. Set Türleri”| Tür | Özellik | Sıralama |
|---|---|---|
HashSet | Hızlı, sırasız, benzersiz elemanlar | Yok |
LinkedHashSet | Ekleme sırasını korur | Evet |
TreeSet | Doğal sıraya göre sıralar (alfabetik / sayısal) | Evet |
🔹 3. HashSet Kullanımı
Section titled “🔹 3. HashSet Kullanımı”import java.util.HashSet;
HashSet<String> set = new HashSet<>();
set.add("Elma");set.add("Armut");set.add("Muz");set.add("Elma"); // tekrar eklendi ama kabul edilmez
System.out.println(set); // [Armut, Elma, Muz]💡
HashSet, sıralama garantisi vermez.
🔹 4. LinkedHashSet Kullanımı
Section titled “🔹 4. LinkedHashSet Kullanımı”import java.util.LinkedHashSet;
LinkedHashSet<String> meyveler = new LinkedHashSet<>();
meyveler.add("Elma");meyveler.add("Armut");meyveler.add("Muz");
System.out.println(meyveler); // [Elma, Armut, Muz]✅ Elemanlar eklenme sırasına göre saklanır.
🔹 5. TreeSet Kullanımı
Section titled “🔹 5. TreeSet Kullanımı”import java.util.TreeSet;
TreeSet<String> meyveler = new TreeSet<>();
meyveler.add("Elma");meyveler.add("Armut");meyveler.add("Muz");
System.out.println(meyveler); // [Armut, Elma, Muz]💡
TreeSet, elemanları alfabetik veya doğal sıralamaya göre düzenler.
🔹 6. Temel Set Metotları
Section titled “🔹 6. Temel Set Metotları”| Metot | Açıklama |
|---|---|
add() | Eleman ekler |
remove() | Eleman siler |
size() | Eleman sayısını döner |
contains() | Eleman var mı kontrol eder |
clear() | Tüm elemanları siler |
isEmpty() | Set boş mu kontrol eder |
🧩 Örnek:
Section titled “🧩 Örnek:”HashSet<Integer> sayilar = new HashSet<>();sayilar.add(10);sayilar.add(20);sayilar.add(30);
System.out.println(sayilar.contains(20)); // trueSystem.out.println("Boyut: " + sayilar.size());
sayilar.remove(10);System.out.println(sayilar);🔹 7. Döngü ile Elemanlara Erişim
Section titled “🔹 7. Döngü ile Elemanlara Erişim”for (String meyve : set) { System.out.println(meyve);}Veya lambda ifadesiyle (Java 8+):
set.forEach(System.out::println);🔹 8. Set’ler Arasında İşlemler
Section titled “🔹 8. Set’ler Arasında İşlemler”import java.util.HashSet;
HashSet<Integer> set1 = new HashSet<>();set1.add(1); set1.add(2); set1.add(3);
HashSet<Integer> set2 = new HashSet<>();set2.add(3); set2.add(4); set2.add(5);🔸 Birleşim (Union)
Section titled “🔸 Birleşim (Union)”HashSet<Integer> birlesim = new HashSet<>(set1);birlesim.addAll(set2);System.out.println("Birleşim: " + birlesim); // [1, 2, 3, 4, 5]🔸 Kesişim (Intersection)
Section titled “🔸 Kesişim (Intersection)”HashSet<Integer> kesisim = new HashSet<>(set1);kesisim.retainAll(set2);System.out.println("Kesişim: " + kesisim); // [3]🔸 Fark (Difference)
Section titled “🔸 Fark (Difference)”HashSet<Integer> fark = new HashSet<>(set1);fark.removeAll(set2);System.out.println("Fark: " + fark); // [1, 2]🔹 9. TreeSet ile Sıralama
Section titled “🔹 9. TreeSet ile Sıralama”TreeSet<Integer> sayilar = new TreeSet<>();sayilar.add(50);sayilar.add(10);sayilar.add(30);
System.out.println(sayilar); // [10, 30, 50]System.out.println("En küçük: " + sayilar.first());System.out.println("En büyük: " + sayilar.last());🧩 10. Set’i Listeye Dönüştürme
Section titled “🧩 10. Set’i Listeye Dönüştürme”import java.util.*;
HashSet<String> set = new HashSet<>();set.add("Java");set.add("Python");
ArrayList<String> liste = new ArrayList<>(set);System.out.println(liste);🏁 Özet
Section titled “🏁 Özet”| Tür | Özellik | Sıralama | Tekrara İzin | Performans |
|---|---|---|---|---|
| HashSet | Hızlı, sırasız | ❌ | ❌ | ⚡ Çok hızlı |
| LinkedHashSet | Ekleme sırası korunur | ✅ | ❌ | ⚡ Orta |
| TreeSet | Doğal sıralama | ✅ | ❌ | ⚡ Daha yavaş |
💡 Not:
Setyapıları genellikle benzersiz veri listeleri, etiket kümeleri, veya koleksiyon filtreleme işlemlerinde kullanılır.