Junior
HashMap ve Set nedir ve hangi durumlarda bunları kullanmak daha iyidir?
sobes.tech yapay zeka
AI'dan gelen yanıt
HashMap, anahtar-değer çiftleri saklayan bir koleksiyondur. Anahtarlar benzersizdir ve değerler tekrar edebilir. Hızlı erişim için (ortalama O(1)) hashing kullanır.
Set, benzersiz öğeleri saklayan bir koleksiyondur. Saklama sırasını garanti etmez, belirli bir uygulama kullanılırsa (örneğin, LinkedHashSet). Öğeleri ekleme, silme ve var olup olmadığını kontrol etme işlemleri genellikle O(1) sürede yapılır. Farklı uygulamaları vardır, örneğin:
HashSet: Öğelerin sırasını garanti etmez.LinkedHashSet: Öğelerin eklenme sırasını korur.TreeSet: Öğeleri sıralı sırayla saklar.
Ne zaman kullanmalı:
- HashMap:
- Anahtar kullanarak etkili arama, ekleme veya silme gerekiyorsa.
- İlişkisel verileri (örneğin sözlük) saklamak için.
- Anahtar ile değer varlığını hızlıca kontrol etmek için.
- Set:
- Sadece benzersiz öğeleri saklamak gerekiyorsa.
- Bir koleksiyonda öğe varlığını verimli şekilde kontrol etmek için.
- Kümeler üzerinde işlemler yapmak (birleşim, kesişim).
HashMap kullanım örneği:
// HashMap oluşturma
HashMap<String, Integer> yaşlar = new HashMap<>();
// Öğeleri ekleme
yaşlar.put("Alice", 30);
yaşlar.put("Bob", 25);
yaşlar.put("Charlie", 35);
// Anahtar ile değer alma
int BobYaşı = yaşlar.get("Bob"); // BobYaşı = 25
// Anahtarın var olup olmadığını kontrol etme
boolean AliceVar = yaşlar.containsKey("Alice"); // AliceVar = true
HashSet kullanım örneği:
// HashSet oluşturma
HashSet<String> isimler = new HashSet<>();
// Öğeleri ekleme
isimler.add("Alice");
isimler.add("Bob");
isimler.add("Charlie");
isimler.add("Alice"); // Eklenmez, çünkü zaten var
// Öğenin var olup olmadığını kontrol etme
boolean BobVar = isimler.contains("Bob"); // BobVar = true
// Öğeler üzerinde yineleme
for (String isim : isimler) {
System.out.println(isim);
}