"Enter"a basıp içeriğe geçin

Map Interface

Map veri tiplerinde anahtar-kilit mantığı mevcuttur. Bunu plaka’ya benzetebiliriz. Her Şehir için bir plaka vardır. Programa şehri girdiğimizde bize plakayı verir.

  • Her bir anahtar için sadece 1 değer vardır. Ama aynı değer birden fazla anahtara verilebilir.
  • Eğer aynı anahtar için tekrardan bir değer tanımlanırsa, önceki değer silinir ve yeni değer geçerli olur.
  • map.put(key,value) fonksiyonu ile map’e eleman ekleyebiliriz. Daha sonra kullanacağımız zaman key değerini girdiğimizde, ona karşılık gelen value değeri kullanılır.
  • get(key) konksiyonu ile değeri getiririz.
  • Eğer olmayan bir key girersek null döner

Tüm elemanları yazdırabilmek için öncelikle map  yapımızı Set haline getirmemiz gerekir.
Bunun için  map.entrySet(); fonksiyonu kullanılır.

Map Türleri

  • LinkedHashSet’te giriş sıralarına göre tutulur.
  • TreeHashMap’de binary search tree olarak tutulur.
  • LinkedHashMap ekleme sırasına göre, TreeHashMap key’lere göre sıralar.

  • map.keySet() : ile key değerlerini bir sete aktarabiliriz.
  • map.value() değerleri bir diziye aktarabiliriz.

Diğer Fonksiyonlar

FonksiyonlarTanım
clear()Map’ı temizler
containsKey(Object)Girilen key’in mevcut olup olmadığına bakar
containsValue(Object)Girilen value’nun mevcut olup olmadığına bakar.
equals(Object)İki map’ın eşitliğini kontrol eder
hashCode()Hash kodu oluşturur.
isEmpty()Map’in boş olup olmadığına bakar
putAll(Map)Verilen map’teki tüm anahtar-kilit ilişkilerini map’ımıza ekler
remove(Object)Girilen key değerini kaldırır.
size()Kaç tane key değer olduğunu döndürür.

 

Map ve Set’lerde kendi sınıfımızı nasıl kullanırız?

Kendi sınıfımızın nesnelerini set ve map ile tutabilmek için, sınıfımızda hashCode() ve equals() fonksiyonlarının tanımlı olması gerekir. Ayrıca yazdırabilmek için toString metodunu da eklemeliyiz. Bu fonksiyonların çalışma mantığını kendimiz tanımlarız.

Map veya set’teki konumunu bulabilmesi için hash kodu üretilmesi gerekir. Farklı değerlerin hash kodu aynı olabileceği için, equal fonksiyonunu tanımlamamız gerekir. Böylece aynı hash koda sahip nesneleri karşılaştırabiliriz.

Tam da istediğimiz gibi, uneque bir şekilde çalıştı.

Eğer bu fonksiyonları tanımlamazsak, bu nesnelerin aynı olduğunu anlayamayacağından veri yapısı hatalı çalışacaktır.

equal metodunu çıkaralım.

 

 

    Bir cevap yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir