package net.orhanbalci.collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class HashMapExample {
public static void main(String[] args) {
Map<Integer,String> m = new HashMap<Integer,String>();
for (int i = 0; i < 10; i++) {
m.put(i, String.valueOf(i) + " değer");
}
Set<Integer> ks = m.keySet();
Iterator<Integer> i = ks.iterator();
while (i.hasNext()) {
Integer key = i.next();
System.out.print(key + " ");
System.out.println(m.get(key));
}
}
}
Örneğimizde 11. satırda yeni bir HashMap nesnesi tanımlıyoruz. Java’nın generics özelliğini (şablon sınıflar) kullanılarak anahtarların veri tipini Integer değerlerin veri tipini ise String olarak belirttik. 14. satırda Map arayüzünün put() metodunu kullanarak HashMap koleksiyonumuza yeni eleman ekliyoruz. 24. satırda ise get() metodu yardımıyla HashMap koleksiyonumuzdan anahtar yardımıyla değerimize ulaşıyoruz.
Yukarıda bahsettiğimiz ilk kapasitenin performansa olan etkisini başka bir örnekte görelim :
Map<Integer,String> m2 = new HashMap<Integer,String>(10);
Map<Integer,String> m3 = new HashMap<Integer,String>(100);
long time1 = System.currentTimeMillis();
for (int k = 0; k < 10000; k++) {
m2.put(k, String.valueOf(k) + " değer");
}
long time2 = System.currentTimeMillis();
System.out.println(String.valueOf(time2-time1) + " milisaniye");
time1 = System.currentTimeMillis();
for (int k = 0; k < 10000; k++) {
m3.put(k, String.valueOf(k) + " değer");
}
time2 = System.currentTimeMillis();
System.out.println(String.valueOf(time2-time1) + " milisaniye");
Bu örneğimizde ise iki adet HashMap nesnesi oluşturuken ilk kapasiteyi yapılandırıcı metoda parametre olarak veriyoruz. m2 koleksiyonumuzun ilk kapasitesi 10 iken diğerinin ilk kapasitesi 100 dür. Her iki koleksiyona arka arkaya 10000 anahtar-değer ikilisi ekleyip performansı ölçtüğümüzde ilk kapasitesi 10 olan koleksiyona ekleme işlemi 46-47 milisaniye sürerken ilk kapasitesi 100 olan koleksiyona ekleme işlemi 19-20 milisaniye sürmekte. Görüldüğü üzere kapasite artırımına gitmek zaman kaybına neden olmaktadır.
İlgili Yazılar:
- Java Dersleri 13 – Koleksiyon API (Collection API) Listeler Koleksiyonlar yazılımımızda verinin hafızada nasıl tutulacağına karar veren soyut veri...
- Java Dersleri 14 – Koleksiyon API (Collection API) Kuyruklar (Queue) Koleksiyon API’sine ait diğer bir arayüz kuyruk (queue) arayüzüdür. Temel...
- Java Dersleri 12 – String İşlemleri Bu dersimizde Java’nın ve diğer dillerin en temel elemanlarından olan...
- Java Dersleri 6 – Arayüzler ve Gerçeklenmesi (Interface and Implementation) Nesne odaklı programlamada arayüzler sınıfların dış dünyaya açılan kapılarıdır. Bir...
- Java Dersleri 4 – Erişim Denetleyicileri (Access Modifiers) Bu dersimizde Java’nın metodlar ve sınıflar üzerinde erişim kurallarını...

(2 oy verilmiş, ortalama: 9,00) <-- Oy Vermeden Geçme
Merhaba, java yazılım ile ilgili googleda araştırma yaparken tesadüfen websitenize ulaştım. Web tasarım açısından ve arama motoru optimizasyonu açısından çok başarılı bulduğumu söyleyebilirim.Biraz daha teknik destek ile bu websitesi daha iyi noktalara ulaşacaktır diye düşünüyorum.