Java ile Map, HashMap, TreeMap ve LinkedHashMap kullanımı
Herkese merhabalar, bu yazımızda sizlerle Java programlama dilinde Map interface yapısından ve TreeMap kullanımından bahsedeceğiz. ve örneklerle pekiştireceğiz.Hadi başlayalım.
İlk olarak Map arayüzünden bahsedelim.
Java dilinde Map arayüzü elemanların anahtar-değer ikilileri şeklinde tutulmasını sağlayan bir yapıdır. Map arayüzü direk olarak örneklenemeyeceği için HashMap, Treemap gibi yapılar ile kullanılmaktadır.
Map arayüzünü niçin kullanırız
Map arayüzü geliştiricilere, container sınıfları içerisinden belirli bir anahtar değer ile verilere erişilmesine olanak tanır. Dictionary yapısı bu kullanıma örnektir. Elemanın index değeri yerine bilinen key ile erişimin sağlanmasında ve başka işlemlerin yapılmasında kullanışlıdır.
Tanım açıklama yapmamız gerektiğinde, id değeri ve veri tipi tutmak istediğimizde, ifade-değer ikililerinde Map sınıfları gayet kullanışlı olmaktadır.
Aşağıda Java ile Map arayüzü ve ilgili sınıfların genel özelliklerinden bahsedelim.
Şimdi her bir sınıf için bir Map örneği yapalım.
Aşağıda Map arayüzü ile HashMap, LinkedHashMap ve TreeMap nesnelerinin oluşturulması gösterilmiştir.
Map<String, Integer> map1 = new HashMap<>();
Map<String, String> map2 = new LinkedHashMap<>();
Map<String, Boolean> map3 = new TreeMap<>();
Map bir interface olduğu için direk olarak nesnesi oluşturulamaz ve nesne oluşturabilmek için bir kendisini implement eden sınıfa ihtiyaç duyar.
Map ve HashMap sınıfı
HashMap sınıfı Map arayüzünü kendisine implemente eder ve verileri key-value çifti olarak saklar. Dolayısıyla elemanlarına erişmek istendiğinde key değeri bilinmelidir. HashMap sınıfının en büyük özelliği: String ifadeleri küçük sitring ifadelere dönüştürerek saklar. Yani Hash eder. Bu özellik koleksiyon içerisinde aramayı hızlandırır ve performansı arttırır.Aşağıda HashMap sınıfının kullanımı görüntülenmektedir.
import java.util.*;
public class HashMapExample{
public static void main(String []args){
Map<String, String> hashMap = new HashMap<>();
hashMap.put("name", "Burak Hamdi");
hashMap.put("surname", "TUFAN");
hashMap.put("web", "thecodeprogram.com");
System.out.println("İsim : " + hashMap.get("name"));
System.out.println("Soyisim : " + hashMap.get("surname"));
System.out.println("Web : " + hashMap.get("web"));
}
}
Program Çıktısı aşağıdaki gibi olacaktır:
İsim : Burak Hamdi
Soyisim : TUFAN
Web : thecodeprogram.com
Map ve LinkedHashMap Sınıfı
LinkedHashMap sınıfı aynı HashMap gibi çalışmaktadır. Ek olarak HashMap sınıfında olmayan sıralama özelliği vardır. LinkedHashMap elemanları eklendiği sırada tutar ve bu şekilde elemanlara erişilmesine olanak tanır.Aşağıda Map ve LinkedHashMap kullanımı görülmektedir.
import java.util.*;
public class LinkedHashMapExample{
public static void main(String []args){
Map<String, String> map = new LinkedHashMap<>();
map.put("name", "Burak Hamdi");
map.put("surname", "TUFAN");
map.put("web", "thecodeprogram.com");
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>)it.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + " : " + value);
}
}
}
Program çıktısı aşağıdaki gibi olacaktır:
name : Burak Hamdi
surname : TUFAN
web : thecodeprogram.com
Map ve TreeMap sınıfı
TreeMap sınıfı bizlere Map arayüzü ile birlikte NavigableMap abstract sınıfının kullanılabilmesini sağlar. Türetilen TreeMap sınıfı örneği, elemanlarının anahtar değerlerine göre veya örnek oluşturma esnasında yapıcı metod ile tanımlanan bir comparator aracılığı ile sıralanırlar. Bu sayede bize bağlı bir sıralama elde edilmiş olur.Aşağıda TreeMap kullanımı örneği görülmektedir.
import java.util.*;
public class TreeMapExample{
public static void main(String []args){
Map<String, String> map = new TreeMap<>();
map.put("name", "Burak Hamdi");
map.put("surname", "TUFAN");
map.put("web", "thecodeprogram.com");
for (Map.Entry<String, String> e : map.entrySet())
System.out.println(e.getKey() + " " + e.getValue());
}
}
Program Çıktısı Aşağıdaki gibi olacaktır:
name Burak Hamdi
surname TUFAN
web thecodeprogram.com
Aşağıda bazı metodların kullanımı görülmektedir.
Bu yazımızda buraya kadar.
Burak Hamdi TUFAN
Comments