list,set,map
Published: 2024-05-17 15:28:26

Java'da `List`, `Set` ve `Map`, Java Collections Framework'ün temel arayüzleridir ve farklı türde koleksiyonları temsil ederler. İşte her biri hakkında kısa bir açıklama:

### List
- `List` arayüzü, sıralı bir koleksiyonu (dizi benzeri bir yapı) temsil eder⁶.
- `List` içindeki öğelerin sırası önemlidir ve kullanıcı, listeye eklenen her öğenin tam yerini kontrol edebilir⁷.
- `List`ler, aynı öğelerin birden fazla kez bulunmasına izin verir (yani, yinelenen öğelere izin verir)⁸.
- `ArrayList`, `LinkedList` gibi sınıflar `List` arayüzünü uygular ve genellikle dinamik diziler olarak kullanılır⁹.

### Set
- `Set` arayüzü, yinelenen öğeler içermeyen bir koleksiyonu temsil eder¹.
- `Set` içinde her öğe benzersizdir ve her öğe için yalnızca bir kez yer alabilir².
- `Set`lerin öğeleri belirli bir sırayla saklanmaz ve bu yüzden sıralı erişim sağlamaz³.
- `HashSet`, `LinkedHashSet`, `TreeSet` gibi sınıflar `Set` arayüzünü uygular ve genellikle matematiksel kümeler gibi davranırlar⁴.

### Map
- `Map` arayüzü, anahtar-değer çiftlerini saklayan bir koleksiyonu temsil eder¹¹.
- `Map` içinde her anahtar benzersizdir ve her anahtar yalnızca bir değere eşlenir¹².
- `Map`ler, öğeleri sıralı bir şekilde saklamaz; ancak bazı `Map` uygulamaları (`TreeMap` gibi) öğeleri belirli bir sırayla tutar¹³.
- `HashMap`, `LinkedHashMap`, `TreeMap` gibi sınıflar `Map` arayüzünü uygular ve genellikle anahtar-değer tabanlı veri yapıları olarak kullanılır¹⁴.

Bu üç arayüz, Java'da veri saklamak ve yönetmek için farklı senaryolara göre kullanılır. `List`ler sıralı veri saklamak için, `Set`ler benzersiz öğeleri saklamak için ve `Map`ler anahtar-değer ilişkilerini saklamak için tercih edilir. 

### List Örneği
```java
import java.util.ArrayList;
import java.util.List;

public class ListOrnegi {
    public static void main(String[] args) {
        // String türünde bir List oluştur
        List<String> meyveler = new ArrayList<>();
        meyveler.add("Elma");
        meyveler.add("Muz");
        meyveler.add("Çilek");
        meyveler.add("Muz"); // Listeler yinelenen öğelere izin verir

        // Listeyi yazdır
        for (String meyve : meyveler) {
            System.out.println(meyve);
        }
    }
}
```

### Set Örneği
```java
import java.util.HashSet;
import java.util.Set;

public class SetOrnegi {
    public static void main(String[] args) {
        // String türünde bir Set oluştur
        Set<String> sehirler = new HashSet<>();
        sehirler.add("İstanbul");
        sehirler.add("Ankara");
        sehirler.add("İzmir");
        sehirler.add("İstanbul"); // Setler yinelenen öğelere izin vermez

        // Set'i yazdır
        for (String sehir : sehirler) {
            System.out.println(sehir);
        }
    }
}
```

### Map Örneği
```java
import java.util.HashMap;
import java.util.Map;

public class MapOrnegi {
    public static void main(String[] args) {
        // Integer anahtar ve String değer türünde bir Map oluştur
        Map<Integer, String> kullanicilar = new HashMap<>();
        kullanicilar.put(1, "Ali");
        kullanicilar.put(2, "Veli");
        kullanicilar.put(3, "Ayşe");
        kullanicilar.put(1, "Kemal"); // Aynı anahtarla yapılan son ekleme geçerlidir

        // Map'i yazdır
        for (Map.Entry<Integer, String> entry : kullanicilar.entrySet()) {
            System.out.println("ID: " + entry.getKey() + ", İsim: " + entry.getValue());
        }
    }
}
```

Bu örnekler, `List`, `Set` ve `Map` koleksiyonlarının temel kullanımını göstermektedir.



Kaynak: Bing ile konuşma, 17.05.2024
(1) List (Java Platform SE 8 ) - Oracle. https://docs.oracle.com/javase/8/docs/api/java/util/List.html.
(2) Java ArrayList - W3Schools. https://www.w3schools.com/java/java_arraylist.asp.
(3) List Interface in Java with Examples - GeeksforGeeks. https://www.geeksforgeeks.org/list-interface-java-examples/.
(4) Java List Interface - Programiz. https://www.programiz.com/java-programming/list.
(5) Set (Java Platform SE 8 ) - Oracle Help Center. https://docs.oracle.com/javase/8/docs/api/java/util/Set.html.
(6) Set in Java - GeeksforGeeks. https://www.geeksforgeeks.org/set-in-java/.
(7) Java Set – Set in Java | DigitalOcean. https://www.digitalocean.com/community/tutorials/java-set.
(8) Java | Set | Codecademy. https://www.codecademy.com/resources/docs/java/set.
(9) Map (Java Platform SE 8 ) - Oracle. https://docs.oracle.com/javase/8/docs/api/java/util/Map.html.
(10) Java Map - javatpoint. https://www.javatpoint.com/java-map.
(11) Java Map - Jenkov.com. https://jenkov.com/tutorials/java-collections/map.html.
(12) Java Map Interface - Programiz. https://www.programiz.com/java-programming/map.
(13) Java - Set Interface - Online Tutorials Library. https://www.tutorialspoint.com/java/java_set_interface.htm.
(14) List (Java SE 11 & JDK 11 ) - Oracle. https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html.
(15) Java map 详解 - 用法、遍历、排序、常用API等 - Java初级码农 - 博客园. https://www.cnblogs.com/lzq198754/p/5780165.html.