HashMap, LinkedHashMap, TreeMap

Kategori: Java , 13 Temmuz 2019 , JanFranco


Java Collection Framework, bir çok veri yapısını içinde hazır olarak barındıran bir pakettir. Bu yazımızda Map sınıfından HashMap, LinkedHashMap, TreeMap yapılarını göreceğiz. HashMap, bir hash fonksiyonuna göre verileri yerleştirirken, LinkedHashMap bizim ekleme sıramıza göre verileri yerleştirir. TreeMap ise verdiğimiz key değerlerine göre sıralama yapar. Daha önce Hash yapısını anlatmıştık, sitemizden inceleyebilirsiniz. Yine de basitçe açıklayalım: veriler hash mantığında bir key değer ile birlikte gönderilir. Bu key değer bir hash fonksiyonundan geçer ve bu fonksiyondan çıkan değer index olur. Örnek üzerinden görelim:


Map<Integer, String> hashmap = new HashMap<Integer, String>();
Map<Integer, String> linkedhashmap = new LinkedHashMap<Integer, String>();
Map<Integer, String> treemap = new TreeMap<Integer, String>();
3 yapıyı da main methodun içinde tanımladık. Gördüğünüz gibi Map sınıfından bir obje oluşturuyoruz ve referans olarak istediğimiz yapıyı bağlayabiliyoruz. 2 değişken tipi yazdık. Integer key değerimiz, String orjinal verimiz. Bu yapılara veri ekleyecek ve verileri konsola bastıracak bir fonksiyon yazalım:

public static void printMap(Map<Integer, String> map){
	
	map.put(10, "C++");
	map.put(5, "Java");
	map.put(1, "Phython");
	map.put(2, "PHP");
	map.put(100, "C");
	
	for(Map.Entry<Integer, String> entry : map.entrySet()){
		System.out.println("Key: " + entry.getKey() + " ----->" + " Değer: " + entry.getValue());
	}
	
}
Fonksiyonları main fonksiyonda kullanalım:

System.out.println("********************");
printMap(hashmap);
System.out.println("********************");
printMap(linkedhashmap);
System.out.println("********************");
printMap(treemap);
Konsolda:

********************
Key: 1 -----> Değer: Phython
Key: 2 -----> Değer: PHP
Key: 100 -----> Değer: C
Key: 5 -----> Değer: Java
Key: 10 -----> Değer: C++
********************
Key: 10 -----> Değer: C++
Key: 5 -----> Değer: Java
Key: 1 -----> Değer: Phython
Key: 2 -----> Değer: PHP
Key: 100 -----> Değer: C
********************
Key: 1 -----> Değer: Phython
Key: 2 -----> Değer: PHP
Key: 5 -----> Değer: Java
Key: 10 -----> Değer: C++
Key: 100 -----> Değer: C
HashMap'te veriler rastgele dizildi. LinkedHashMap'te veriler bizim ekleme sıramıza göre yerleştirildi. TreeMap'te ise key değerlerine göre sıralandı.


Sonraki Yazı: HashSet, LinkedHashSet, TreeSet
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın