search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
633 gösterim

Neden genellikle bu inilitize edilme kullanılmaktadır? Yani Map objesine HashMap objesi yaratılıp atanır.

  • HashMap<X, X> = new HashMap<X, X>(); -->  Map<X, X> = new HashMap<X, X>();  örnek vercek olursam:

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

bunun yerine 

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

kullanılıyor. Bir benzeri de ArrayList(s)'de de var.

Java kategorisinde 2.0k puan

1 cevap

0 oy
Map fonksiyon denilen bir kavram var. Elinde bir isim olduğunu düşün, bu isim senin için birşeyler ifade ediyor. Yani ismi verdiğin zaman karşılığında bir sınıf alman gerekiyor. Sınıfdan kasıt herhangi birşey olabilir. En güzel örneklerden birisi sözlük. ING-TUR örneği üzerinden gidelim. Ingilizce bir kelime aslında sana Türkçe bir kelimeyi ifade ediyor. Yani "hello" -> "selam" gibi. Normal programlama terimlerinden bakarsak aslında sen "hello" kelimesini "selam" kelimesine eşliyor(mapliyorsun). Sonra "hello" kelimesini çağırdığında sana "selam" gelmesi lazım. Bunun için programlama dillerinde map fonksiyon var. Java'da direk karşılığı Map interface (arayüz). Kullanımı nasıl. map.put("hello","selam) diyerek ekliyorsun. Sonra map.get("hello") dediğin zaman "selam" kelimesini geri alıyorsun.

Map tanımlanmış bir arayüz. Belirli metodları var. Peki map fonksiyonu hafıza üzerinde nasıl tutulmalı? Programcı olarak soru bu. Bu fonksiyonun tutulması için Hash yapısı veya Tree yapısı kullanırsak özellikle get metodu çalıştırılırken performans iyi olacak. Bunların haricinde tabiki dizi ya da bağlı liste (linked-list) kullanılabilir. Ama uygulama çalışırken performans sorunları yaşanacak. İşte tam bu aşamada java standard olarak bize Map arayüzünün gerçekleştirimlerini veriyor. HashMap dediğin hafızada Hash yapısı üzerinden yazılmış bir Map sınıfı. Ayrıca TreeMap ve LinkedHashMap versiyonları da var. Onların aralarındaki farklar ayrıca değerlendirilebilir. Ama temel olarak sorunun cevabı. HashMap, Map arayüzünün gerçekleştirimini Hash ile yapan bir sınıftır. Programcılar kullanımda Map kullanmak istiyor ama hafızada Hash olarak tutulmasını istiyorsa Map m = new HashMap kullanıyor.

İyi çalışmalar,
6.2k puan

İlgili sorular

1 oy
1 cevap 6.9K gösterim
6.9K gösterim
Bir sınıf kendisini extend eden sınıfa cast edilebilir . Buna downcasting denir. Peki upcasting ile farki nedir? Javada kullanim amaci nedir?
19 Aralık 2015 Java kategorisinde yildiz 193 puan sordu
0 oy
1 cevap 760 gösterim
760 gösterim
Java 8'de map() ve flatMap() kullanım amacı mapping yapmak . Ancak ne farkı var?
6 Ekim 2020 Java kategorisinde tolgacelik.art 2.0k puan sordu
1 oy
1 cevap 1.7K gösterim
1.7K gösterim
Merhaba, Hashmap in çalışma mantığı nasıldır, nasıl çalışır?
27 Kasım 2017 Java kategorisinde erkanerkisi 211 puan sordu
0 oy
1 cevap 1.2K gösterim
1.2K gösterim
HashMap ve Hashtable farkları nelerdir, hangisi kullanmak daha effective olur? Ne gibi yerlerde kullanılır genellikle?
3 Nisan 2016 Java kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 391 gösterim
391 gösterim
Soruyu beğendiğim için paylaşıyorum. JSE swing kütüphanesinde JPasswordField.getPassword() metodu neden String yerine char[](char array) dönderiyor? String'e göre faydası nedir? İyi çalışmalar.
8 Aralık 2015 Java kategorisinde kenan 6.2k puan sordu