Java'da Hashmap nedir? Örneklerle Açıklamalı
Yayınlanan: 2021-07-02HashMap, Java'da bir koleksiyon sınıfıdır. Anahtar ve değer çiftlerini saklamak için kullanabilirsiniz. Performansı, başlangıç kapasitesine ve yük faktörüne bağlıdır. HashMap, hash tablosu veri yapısını kullanmanıza izin veren çeşitli yöntemlere sahiptir.
Aşağıdaki makalede, HashMap'in ne olduğunu keşfedeceğiz ve örnekler aracılığıyla çeşitli kurucuları hakkında bilgi edineceğiz.
İçindekiler
HashMap nedir?
HashMap, Haritaya dayalı bir koleksiyon sınıfıdır. Anahtar ve değer çiftlerini saklamak için kullanırız. Bir HashMap Java'sını HashMap<K, V> olarak belirtirsiniz; burada K, Anahtar ve V, Değer anlamına gelir.
HashMap, Hashtable sınıfına benzer. İkisi arasındaki fark, Hashtable değilken HashMap'in senkronize olmamasıdır. Ayrıca Hashtable'ın aksine HashMap boş değerlere ve boş anahtara izin verir.
HashMap sıralı bir koleksiyon olmadığından, anahtarları ve değerleri eklediğiniz sırayla döndürmez. Ayrıca, HashMap saklanan anahtarları ve değerleri sıralamaz. HashMap sınıfını ve yöntemlerini kullanmak istiyorsanız, Java.util.HashMap'i (veya onun üst sınıfını) içe aktarmanız gerekir.
HashMap size Java'nın Harita arayüzünün basit bir uygulamasını sunar. HashMap aracılığıyla sakladığınız anahtar/değer çiftlerine başka bir türde (tamsayı gibi) bir dizin kullanarak erişebilirsiniz. Yinelenen bir anahtar kullanırsanız, ilgili anahtarın öğesinin yerini alacağını unutmayın. Ayrıca, yalnızca bir boş anahtar nesnesi kullanabilirsiniz; ancak, herhangi bir sayıda boş değer olabilir.
HashMap, Cloneable, Serializable, Map<K, V> arayüzlerini uygular. AbstractMap<K, V> sınıfını genişletir ve doğrudan alt sınıfları PrinterStateReasons ve LinkedHashMap'tir.
HashMap'in Özellikleri
HashMap'teki başlıca özellikler şunlardır:
- Java.util.package'in bir bileşenidir.
- Yinelenen değerler kullanabilirsiniz, ancak HashMap yinelenen anahtarlara izin vermez. Bu, bir anahtarın birden çok değeri olamayacağı, ancak birden çok anahtarın tek bir değeri olabileceği anlamına gelir.
- Boş anahtarları yalnızca bir kez kullanabilirsiniz, ancak çeşitli boş değerler kullanabilirsiniz.
- HashMap, haritanın sırasına ilişkin hiçbir garanti vermez. Bu nedenle, siparişin sabit kalacağını garanti etmez.
- HashMap, Hashtable'a çok benzer, tek fark HashMap'in senkronize edilmemiş olmasıdır.
- HashMap, Serileştirilebilir ve Klonlanabilir bir arayüz uygular.
HashMap Oluşturucuları
HashMap'te dört kurucu vardır:
1. HashMap()
HashMap(), yük faktörü 0,75 ve başlangıç kapasitesi 16 olan bir örnek oluşturan varsayılan yapıcıdır.
Örnek :
// HashMap() yapıcısının nasıl çalıştığını gösteriyor
java.io'yu içe aktar*;
java.util.* dosyasını içe aktarın;
class AddElementsToHashMap {
public static void main(String args[])
{
// bahsetmek zorunda değilsin
// Genel tip iki kez
HashMap<Tamsayı, Dize> hm1 = new HashMap<>();
// HashMap'i başlatmak için Generics'i kullanma
HashMap<Tamsayı, Dize> hm2
= new HashMap<Tamsayı, Dize>();
// Herhangi bir öğe eklemek için put yöntemini kullanın
hm1.put(1, “A”);
hm1.put(2, “B”);
hm1.put(3, “C”);
hm2.put(4, “D”);
hm2.put(5, “E”);
hm2.put(6, “F”);
System.out.println(“hm1'in sonuçları: “
+ hm1);
System.out.println("HashMap hm2'nin sonuçları: "
+ hm2);
}
}
çıktı :
hm1'in sonuçları: {1=A, 2=B, 3=C}
hm2'nin sonuçları: {4=D, 5=E, 6=F}
2. HashMap(int initialCapacity)
HashMap(int initialCapacity), 0.75 yüke ve belirli bir başlangıç kapasitesine sahip bir örnek oluşturur.
Örnek :
// HashMap(int initialCapacity) yapıcısının nasıl çalıştığını gösteriyor
java.io'yu içe aktar*;
java.util.* dosyasını içe aktarın;
class AddElementsToHashMap {
public static void main(String args[])
{
// bahsetmek zorunda değilsin
// Genel tip iki kez
HashMap<Tamsayı, Dize> hm1 = new HashMap<>(10);
// HashMap'i başlatmak için Generics'i kullanma
HashMap<Tamsayı, Dize> hm2
= new HashMap<Tamsayı, Dize>(2);
// Herhangi bir öğe eklemek için put yöntemini kullanın
hm1.put(1, “A”);
hm1.put(2, “B”);
hm1.put(3, “C”);
hm2.put(4, “D”);
hm2.put(5, “E”);
hm2.put(6, “F”);
System.out.println(“hm1'in sonuçları: “
+ hm1);
System.out.println("HashMap hm2'nin sonuçları: "
+ hm2);
}
}
çıktı :
hm1'in sonuçları: {1=A, 2=B, 3=C}
hm2'nin sonuçları: {4=D, 5=E, 6=F}
3. HashMap(int initialCapacity, float loadFactor)
HashMap(int initialCapacity, float loadFactor), belirli bir yük faktörü ve başlangıç kapasitesine sahip bir örnek oluşturur.
Örnek :
// HashMap(int initialCapacity, float loadFactor) Oluşturucusunun nasıl çalıştığını gösteriyor
java.io'yu içe aktar*;
java.util.* dosyasını içe aktarın;
class AddElementsToHashMap {
public static void main(String args[])
{
// bahsetmek zorunda değilsin
// Genel tip iki kez
HashMap<Tamsayı, Dize> hm1
= yeni HashMap<>(5, 0.75f);
// HashMap'i başlatmak için Generics'i kullanma
HashMap<Tamsayı, Dize> hm2
= new HashMap<Tamsayı, Dize>(3, 0.5f);
// Öğe eklemek için put yöntemini kullanın
hm1.put(1, “A”);
hm1.put(2, “B”);
hm1.put(3, “C”);
hm2.put(4, “D”);
hm2.put(5, “E”);
hm2.put(6, “F”);
System.out.println(“hm1'in sonuçları: “
+ hm1);
System.out.println("HashMap hm2'nin sonuçları: "
+ hm2);
}
}
çıktı :
hm1'in sonuçları: {1=A, 2=B, 3=C}
hm2'nin sonuçları: {4=D, 5=E, 6=F}
4. HashMap(Harita haritası)
HashMap(Harita haritası), belirttiğiniz haritayla aynı eşlemelere sahip bir örnek oluşturur.
Örnek :
// HashMap(Harita haritası) yapıcısının nasıl çalıştığını gösteriyor
java.io'yu içe aktar*;
java.util.* dosyasını içe aktarın;
class AddElementsToHashMap {
public static void main(String args[])
{
// bahsetmek zorunda değilsin
// Genel tip iki kez
Map<Integer, String> hm1 = new HashMap<>();
// HashMap'i başlatmak için Generics'i kullanma
HashMap<Tamsayı, Dize> hm2
= new HashMap<Tamsayı, Dize>(hml);
// Herhangi bir öğe eklemek için put yöntemini kullanın
hm1.put(1, “A”);
hm1.put(2, “B”);
hm1.put(3, “C”);
hm2.put(4, “D”);
hm2.put(5, “E”);
hm2.put(6, “F”);
System.out.println(“hm1'in sonuçları: “
+ hm1);
System.out.println("HashMap hm2'nin sonuçları: "
+ hm2);
}
}
çıktı :
hm1'in sonuçları: {1=A, 2=B, 3=C}
hm2'nin sonuçları: {4=D, 5=E, 6=F}
Java hakkında daha fazla bilgi edinin
Java'nın HashMap dışında birçok sınıfı vardır. Bu sınıfların her birinin özünü, kullanımlarını ve Java entegrasyonunu kendi başınıza öğrenmek oldukça zordur. Bu süreçten geçmenin en iyi yolu bir bilgisayar bilimi dersi almaktır.
Profesyonel bir kurs almak, yapılandırılmış bir müfredat aracılığıyla gerekli beceri ve kavramlarda ustalaşmanızı sağlayacaktır. Ayrıca, bu tür kurslar, teorik temelleri anlamanızı kolaylaştıran videolar, canlı oturumlar ve çevrimiçi derslerle kolaylaştırılan sürükleyici bir öğrenme deneyimi sunar.
LJMU (Liverpool John Moores Üniversitesi, İngiltere) ve IIIT-B (Uluslararası Bilgi Teknolojileri Enstitüsü, Hindistan) ile birlikte sunulan Bilgisayar Bilimleri Yüksek Lisans programımıza göz atabilirsiniz. Kurs, 500+ saat içerik, 10+ canlı ders ve 30+ vaka çalışmasını kapsar.
Bu 19 aylık kurs, son derece değer odaklı ve küresel bir öğrenme deneyimi vaat ediyor. En büyük katma değer, dünyanın dört bir yanından akranlarla bağlantı kurmanız ve onlarla etkileşim kurmanız gerçeğinde yatmaktadır. upGrad, 85'ten fazla ülkeye yayılmış 40.000'den fazla ücretli küresel öğrenciye sahip olmakla övünmektedir. Sonuç olarak, genel bakış açınızı genişleten yeni kültürlere, yeni görüşlere ve yeni bakış açılarına maruz kalırsınız. Sadece bu değil, şüphelerinizi çözmenize yardımcı olmak için özel ve kişiselleştirilmiş yardım sağlayan LJMU ve IIIT-B'den uzman danışmanlar tarafından eğitilirsiniz.
Bu avantajların yanı sıra, bu program size endüstri mentorluğu, ağ oluşturma fırsatları ve çok daha fazlasını içeren 360 derecelik kariyer yardımı sağlayacaktır.
Çözüm
Bu yazıda HashMap'in ne olduğunu, farklı kurucularını ve bunları nasıl uygulayabileceğinizi örnekler üzerinden öğrendik. HashMap'in Java'da bir sürü uygulaması vardır - öğeleri eklemek, kaldırmak ve gerektiği gibi yönetmek için HashMap'i kullanabilirsiniz.
HashMap'teki bu kılavuz hakkındaki düşünceleriniz nelerdir? Bunları aşağıdaki yorum bölümünde paylaşın.