Java'da sıkça kullanılan bir diğer veri saklama yöntemlerinden diğeri de Map Interface sınıfı kullanımıdır. Bu sınıflar verileri anahtar - değer mantığına göre saklamaktadır. Bir obje Map içerisine eklenirken bu objeyi işaret eden bir anahtar kullanmaktadır. Obje çekilmek istediğinde bu anahtar değeri sorgulanır ve obje hızlı bir şekilde diğer objeler arasından getirilir.
Map Interface'i kullanan sınıflar aşağıdaki metodlara sahiptir;
- clear: Map içinde bulunan bütün değerleri siler.
- containsKey (Object key): Belli bir anahtar daha önceden girilmiş mi sorgular.
- containsValue (Object value): Belli bir obje daha önceden girilmiş mi sorgular.
- get (Object key): Anahtara karşılık gelen objeyi döndürür.
- put (Object key, Object value): Anahtar - değer ikilisini kayıt eder.
- remove (Object key): Belli bir anahtara karşılık gelen değeri siler.
- size: O zaman kadar kayıt edilmiş anahtar - değer ikili sayısını verir.
Şimdi sizlere HashMap sınıfını kullanarak bir kullanıcı ile ilgili değerler saklayan bir Map dizisi oluşturacağız.
Map<String,String> userMap = new HashMap<String, String>();
userMap.put("email", "ahmet@example.com");
userMap.put("name", "Ahmet Zan");
userMap.put("address", "İstanbul 34000");
userMap.put("mobile", "5322100000");
Yukarıdaki örnekte userMap adında bir değişken içerisinde Ahmet Zan adında hayali bir kullanıcıya ait bilgiler anahtar - değer ikilileri halinde saklanmıştır. Daha sonra kullanıcıya ait bir bilgiye ulaşmak istediğimizde ilgili anahtarı girmemiz yeterli olacaktır;
Map<String,String> userMap = new HashMap<String, String>();
userMap.put("email", "ahmet@example.com");
userMap.put("name", "Ahmet Zan");
userMap.put("address", "Istanbul 34000");
userMap.put("mobile", "5322100000");
System.out.println("Kullanici adresi " + userMap.get("address"))
Aşağıdaki örnekte ise belli bir anahtarın sorgulanmasını görüyoruz;
Map<String,String> userMap = new HashMap<String, String>();
userMap.put("email", "ahmet@example.com");
userMap.put("name", "Ahmet Zan");
userMap.put("address", "Istanbul 34000");
userMap.put("mobile", "5322100000");
System.out.println("Kullanici adresi " + userMap.get("address"))
Bir Map içerisinde yer alan bütün anahtar - değer ikililerini yazdırmak isterseniz bir foreach döngüsünden faydalanabilirsiniz.
for(Map.Entry<String, String> pairs : userMap.entrySet()) {
System.out.println(pairs);
}
HashMap'leri Android konuları içerisinde sıklıkla kullanacağız.