Java ile Map Arayüzü ve Hashmap kullanımı

Java ile Map Arayüzü ve Hashmap kullanımı

Herkese merhabalar, bu yazımızda sizlerle java programlama dilinde java.util tarafından sağlanan ve Collectionlar gibi davranan Map yapısı hakkında konuşacağız ve örnekler yapacağız.

İlk olarak Java Map nedir?
Java collections sınıfı içerisinde bulunan, Map arayüzü oluşturulan koleksiyonlarda anahtar-değer ilişkisi kurmaya olanak tanır. Bu sayede koleksiyon içerisindeki verilere belirlenen anahtar değerleri ile erişerek gerekli işlemler yapılabilir. Map bir interface yapısı olduğu için direk olarak initialize edilemez ve Hashmap gibi türetilmiş sınıflar aracılığı ile kullanılabilir.

Aşağıda Map sınıfı ile ilgili diagram görülmektedir. Map Class Hierachy Diagram

Map tanımlarken ilk olarak bir Map arayüzü oluşturuyoruz ve içerisine anahtar ve değerlerin veri tiplerini beirtiyoruz. Ardından Map arayüzünü hangi tip koleksiyon sınıfı ile kullanacaksak o sınıf ile başlatıyoruz.


Map<Integer, String> map  = new HashMap<>(); 

Sonrasında başlatılan sınıfı kullanarak oluşturduğumuz koleksiyonun içerisine anahtar değer çiftlerini ekliyoruz.


map.put(0, "Burak"); 
map.put(1, "Hamdi"); 
map.put(2, "TUFAN"); 

Şimdi Map arayüzü ve Hashmap sınıfı ile ilgili basit bir örnek yapalım.

İlk olarak Java util içerisinde bulunan Map ve Hashmap kütüphanelerini projemize ekleyelim.

import java.util.HashMap;
import java.util.Map;

public class MapInterfaceExample {
    
    public static void main(String[] args) {
        printMap();
    }
    
    public static void printMap(){
        Map<Integer, String> map  = new HashMap<>(); 
  
        map.put(0, "Burak"); 
        map.put(1, "Hamdi"); 
        map.put(2, "TUFAN"); 
  
        System.out.println(map);
        
        for (int i=0; i<map.size(); i++) { 
            System.out.println(i + " : " + map.get(i)); 
        }
    }
}
Program çıktısı aşağıdaki gibi olacaktır:

{0=Burak, 1=Hamdi, 2=TUFAN}
0 : Burak
1 : Hamdi
2 : TUFAN
Şimdide hashmap içerisine eklenen verilerin değiştirilmesi kaldırılması gibi işlemlere göz atalım. Bu işlemler için anahtar değerleri ile koleksiyon içi elemanlara ulaşıp, istenilen değerleri değiştireceğiz.

Aşağıdaki kod bloğunda bir verinin naısl güncellendiğini görmekteyiz. Görüldüğü üzere eklemede kullanılan put metodu ile, önceden eklenen indeks değeri kullanarak veri güncelleme işlemini gerçekleştiriyoruz.


import java.util.*;

public class Main
{
	public static void main(String[] args) {
       		Map<Integer, String> map  = new HashMap<>(); 
  
        	map.put(0, "Burak"); 
        	map.put(1, "Hamdi"); 
        	map.put(2, "TUFAN"); 
        
        	System.out.println(map);
        
        	map.put(0, "The"); 
        	map.put(1, "Code"); 
        	map.put(2, "Program");
        
        	System.out.println(map);
	}
}
Program çıktısı aşağıdaki gibi olacaktır :

{0=Burak, 1=Hamdi, 2=TUFAN}
{0=The, 1=Code, 2=Program}

Bir hashmap içerisinden elemanı kaldırmak için ise remove metodunu kullanıyoruz. remove metodu içerisine silmek istediğimiz elemanın key değerini gönderiyoruz ve silme işlemini gerçekleştiriyoruz.


import java.util.*;

public class Main
{
	public static void main(String[] args) {
		Map<Integer, String> map  = new HashMap<>(); 
  
                map.put(0, "Burak"); 
                map.put(1, "Hamdi"); 
                map.put(2, "TUFAN"); 
        
                for(int i=map.size()-1; i>=0; i--){
                    System.out.println(map);
                    map.remove(i);
                }
	}
}
Program Çıktısı aşağıdaki gibi olacaktır:

{0=Burak, 1=Hamdi, 2=TUFAN}
{0=Burak, 1=Hamdi} 
{0=Burak}

Eğer bir Map koleksiyonunun içerisinde bulunan elemanların key ve değerlini almak istiyorsak for döngüsü içerisinde elemanlar için getKey() ve getValues() metodlarını kullanabilmekteyiz.


import java.util.*;

public class Main
{
	public static void main(String[] args) {
		Map<Integer, String> map  = new HashMap<>(); 
  
        	map.put(0, "Burak"); 
        	map.put(1, "Hamdi"); 
        	map.put(2, "TUFAN"); 
        
        	for (Map.Entry mapEleman : map.entrySet()){
             		System.out.println(mapEleman.getKey() + " : " + mapEleman.getValue());
        	}
	}
}
Program Çıktısı aşağıdaki gibi olacaktır:

0 : Burak
1 : Hamdi
2 : TUFAN
Kısaca bir hatırlatma yapacak olursak
  • Map bir interface olduğu için direk olarak nesne örneği oluşturulamaz ve HashMap, TreeMap veya LinkedList gibi sınıfları türettiği için onlar üzerinden kullanılabilmektedir.
  • Map yapısı bir anahtar değer tablosudur ve elemanlara bizim belirlediğimiz bir anahtar değeri ile erişebiliriz.
  • Buradaki gibi Map yapısı ile Hashmap oluşturulup, hashmap üzerinden gerekli eleman ekleme silme ve güncelleme işlemlerimizi yapabilmekteyiz.
  • Bir hashmap içerisine eleman eklemek put metodunu kullanırız.
  • Eklenen bir elemanın anahtar değeri biliniyorsa put metodu ile o eleman güncellenir.
  • Elemanı kaldırmak için remove metodu kullanılır.
  • Koleksiyon içerisindeki anahtarları ve değerleri alabilmek içinde getKey ve getValue metodları kullanılır.

Bu yazımızda buraya kadar.

İyi çalışmalar dilerim.

Burak Hamdi TUFAN


Tags


Share this Post

Send with Whatsapp

Post a Comment

Success! Your comment sent to post. It will be showed after confirmation.
Error! There was an error sending your comment.

Comments

  • There is no comment. Be the owner of first comment...