Bu eğiticide, Java ConcurrentMap arayüzü ve yöntemleri hakkında bilgi edineceğiz.
ConcurrentMap
Java koleksiyonları çerçevesinin arayüzü evreli haritasını sunuyor. Yani, birden çok iş parçacığı, bir haritadaki girişlerin tutarlılığını etkilemeden haritaya aynı anda erişebilir.
ConcurrentMap
senkronize harita olarak bilinir.
Harita arayüzünü genişletir.
ConcurrentMap uygulayan sınıf
Yana ConcurrentMap
bir arayüz, biz ondan nesneler oluşturamazsınız.
ConcurrentMap
Arayüzün işlevlerini kullanabilmek için , onu ConcurrentHashMap
uygulayan sınıfı kullanmamız gerekir.
ConcurrentMap nasıl kullanılır?
Öğesini kullanmak için ConcurrentMap
önce java.util.concurrent.ConcurrentMap
paketi içe aktarmalıyız . Paketi içe aktardıktan sonra, işte eşzamanlı bir haritayı nasıl oluşturabileceğimiz.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
Yukarıdaki kodda, numaralar adında eşzamanlı bir harita oluşturduk.
Buraya,
- Anahtar - bir haritadaki her bir öğeyi (değeri) ilişkilendirmek için kullanılan benzersiz bir tanımlayıcı
- Değer - bir haritadaki anahtarlarla ilişkilendirilen öğeler
ConcurrentMap Yöntemleri
ConcurrentMap
Arayüzü tüm yöntemleri kapsamaktadır Map
arayüz. Bunun nedeni Map
, arayüzün süper arayüzü olmasıdır ConcurrentMap
.
Tüm bu yöntemlerin yanı sıra, işte ConcurrentMap
arayüze özgü yöntemler .
- putIfAbsent () - Belirtilen anahtar zaten herhangi bir değerle ilişkilendirilmemişse, belirtilen anahtarı / değeri haritaya ekler.
- compute () - Belirtilen anahtar ve önceden eşlenmiş değeri için bir girişi (anahtar / değer eşlemesi) hesaplar.
- computeIfAbsent () - Anahtar önceden herhangi bir değerle eşlenmemişse, belirtilen anahtar için belirtilen işlevi kullanarak bir değer hesaplar.
- computeIfPresent () - Anahtar belirtilen değerle zaten eşlenmişse, belirtilen anahtar için yeni bir giriş (anahtar / değer eşlemesi) hesaplar.
- forEach () - Bir haritanın tüm girişlerine erişin ve belirtilen eylemleri gerçekleştirin.
- merge () - Anahtar zaten belirli bir değere eşlenmişse, belirtilen yeni değeri belirtilen anahtarın eski değeriyle birleştirir. Anahtar zaten eşlenmemişse, yöntem yalnızca belirtilen değeri anahtarımızla ilişkilendirir.
Daha fazla bilgi edinmek için Java ConcurrentMap'i (resmi Java belgeleri) ziyaret edin.
ConcurrentHashMap'te ConcurrentMap Uygulaması
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentHashMap; class Main ( public static void main(String() args) ( // Creating ConcurrentMap using ConcurrentHashMap ConcurrentMap numbers = new ConcurrentHashMap(); // Insert elements to map numbers.put("Two", 2); numbers.put("One", 1); numbers.put("Three", 3); System.out.println("ConcurrentMap: " + numbers); // Access the value of specified key int value = numbers.get("One"); System.out.println("Accessed Value: " + value); // Remove the value of specified key int removedValue = numbers.remove("Two"); System.out.println("Removed Value: " + removedValue); ) )
Çıktı
ConcurrentMap: (Bir = 1, İki = 2, Üç = 3) Erişilen Değer: 1 Kaldırılan Değer: 2
Daha fazla bilgi edinmek için ConcurrentHashMap
Java ConcurrentHashMap'i ziyaret edin.