Šioje pamokoje sužinosime apie „Java ConcurrentMap“ sąsają ir jos metodus.
„ ConcurrentMap
Java“ kolekcijų sąsajoje pateikiamas saugus žemėlapis. Tai reiškia, kad kelios gijos vienu metu gali pasiekti žemėlapį, nepaveikdamos žemėlapio įrašų nuoseklumo.
ConcurrentMap
yra žinomas kaip sinchronizuotas žemėlapis.
Tai išplečia žemėlapio sąsają.
Klasė, įgyvendinanti „ConcurrentMap“
Kadangi ConcurrentMap
tai yra sąsaja, negalime iš jos kurti objektų.
Norėdami naudoti ConcurrentMap
sąsajos funkcionalumą , turime naudoti ją įgyvendinančią klasę ConcurrentHashMap
.
Kaip naudoti „ConcurrentMap“?
Norėdami naudoti ConcurrentMap
, pirmiausia turime importuoti java.util.concurrent.ConcurrentMap
paketą. Kai importuosime paketą, štai kaip galime sukurti lygiagretų žemėlapį.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
Pirmiau pateiktame kode sukūrėme lygiagretų žemėlapį, pavadintą skaičiais.
Čia
- Raktas - unikalus identifikatorius, naudojamas susieti kiekvieną žemėlapio elementą (vertę)
- Vertė - elementai, susieti su klavišais žemėlapyje
„ConcurrentMap“ metodai
ConcurrentMap
Sąsaja apima visus metodus Map
sąsaja. Taip yra todėl, kad Map
yra super sąsajos ConcurrentMap
sąsaja.
Be visų šių metodų, čia yra būdai, būdingi ConcurrentMap
sąsajai.
- putIfAbsent () - įterpia nurodytą raktą / vertę į žemėlapį, jei nurodytas raktas dar nėra susietas su jokia verte.
- compute () - apskaičiuoja nurodyto rakto įrašą (rakto / vertės susiejimą) ir jo anksčiau susietą vertę.
- computeIfAbsent () - apskaičiuoja reikšmę naudodama nurodyto rakto funkciją, jei raktas dar nėra susietas su jokia verte.
- computeIfPresent () - apskaičiuoja naują nurodyto rakto įrašą (rakto / vertės susiejimą), jei raktas jau susietas su nurodyta verte.
- forEach () - pasiekite visus žemėlapio įrašus ir atlikite nurodytus veiksmus.
- sulieti () - sujungia naują nurodytą reikšmę su senąja nurodyto rakto verte, jei raktas jau susietas su tam tikra verte. Jei raktas dar nėra susietas, metodas tiesiog susieja nurodytą vertę su mūsų raktu.
Norėdami sužinoti daugiau, apsilankykite „Java ConcurrentMap“ (oficiali „Java“ dokumentacija).
„ConcurrentMap“ diegimas „ConcurrentHashMap“
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); ) )
Rezultatas
„ConcurrentMap“: (Vienas = 1, Du = 2, Trys = 3) Prieiga prie vertės: 1 Pašalinta vertė: 2
Norėdami sužinoti daugiau apie tai ConcurrentHashMap
, apsilankykite „Java ConcurrentHashMap“.