Bagaimana untuk Mengalih Keluar dan Mengakses Elemen ConcurrentHashMap di Java?

Bagaimana Untuk Mengalih Keluar Dan Mengakses Elemen Concurrenthashmap Di Java



' ConcurrentHashMap ” kelas ialah versi HashMap tradisional yang dipertingkatkan. Ia memberikan banyak faedah kepada pengaturcara seperti menjimatkan banyak masa, lebih mudah dan meningkatkan fleksibiliti. Ia boleh melaksanakan berbilang tugas bersebelahan pada masa yang sama, namun untuk berbilang naik taraf nilai nod hanya satu naik taraf dilakukan pada satu masa.

Artikel ini menunjukkan prosedur untuk Alih Keluar dan Akses Elemen ConcurrentHashMap dalam Java.

Bagaimana untuk Mengalih keluar Elemen ConcurrentHashMap di Java?

Unsur-unsur khusus boleh dialih keluar daripada ' ConcurrentHashMap 'elemen melalui ' keluarkan() ” kaedah. Untuk mengalih keluar semua elemen sekaligus, ' jelas() ” kaedah adalah pilihan terbaik untuk dipilih.







Terdapat juga dua variasi kaedah 'move()':



  • ' keluarkan(kunci) ” memadamkan entiti yang mempunyai “ yang ditentukan kunci ” daripada “ConcurrentHashMap”.
  • ' alih keluar (kunci, nilai) ' memadamkan entiti yang telah ditentukan ' kunci ” sepanjang yang sepadan “ nilai ” daripada “ConcurrentHashMap”.

Lawati blok kod di bawah untuk penjelasan yang lebih baik:



import java.util.concurrent.ConcurrentHashMap ;
kelas akar
{
awam statik batal utama ( Tali [ ] args ) //penciptaan kaedah utama().
{ // Pengisytiharan ConcurrentHashMap
Pasukan ConcurrentHashMap = baru ConcurrentHashMap ( ) ;
Pasukan. letak ( 'Thor' , 2 ) ;
Pasukan. letak ( 'Pelik' , 4 ) ;
Pasukan. letak ( 'Hawkeye' , 6 ) ;
Sistem . keluar . println ( 'ConcurrentHashMap: ' + Pasukan ) ;

int nilai = Pasukan. keluarkan ( 'Pelik' ) ;
Sistem . keluar . println ( 'Nilai ' + nilai + 'dialih keluar' ) ;
Sistem . keluar . println ( 'ConcurrentHashMap: ' + Pasukan ) ;

boolean hasil = Pasukan. keluarkan ( 'Hawkeye' , 6 ) ;
Sistem . keluar . println ( 'Adakah entri {Hawkeye = 6} dialih keluar?' + hasil ) ;
Sistem . keluar . println ( 'ConcurrentHashMap yang dikemas kini: ' + Pasukan ) ;

Pasukan. jelas ( ) ;
Sistem . keluar . println ( 'ConcurrentHashMap yang dikemas kini: ' + Pasukan ) ;

}
}

Penerangan blok kod di atas:





  • Pertama, 'ConcurrentHashMap' bernama ' Pasukan ” dicipta, dan kemudian data tiruan dimasukkan ke dalamnya menggunakan “ letak ” kaedah.
  • Seterusnya, ' keluarkan() kaedah ' digunakan dan kunci ' pelik ” diserahkan kepadanya. Kaedah ini mengalih keluar entiti daripada peta yang mempunyai kunci 'Pelik'.
  • Di samping itu, paparkan baki elemen peta melalui 'ConcurrentHashMap'.
  • Sekarang, lulus ' kunci 'dan sepadan' nilai ' kepada ' keluarkan() ” kaedah untuk memadamkan entiti daripada “ConcurrentHashMap” yang mempunyai kunci dan nilai tertentu.
  • Selepas itu, paparkan 'ConcurrentHashMap' untuk melihat perbezaan secara visual.
  • Pada akhirnya, gunakan ' jelas() ' kaedah untuk memadam semua elemen yang tinggal di dalam 'ConcurrentHashMap'. Juga, paparkan 'ConcurrentHashMap' pada konsol pada penghujung.

Selepas tamat fasa penyusunan:



Gambar menunjukkan unsur-unsur yang telah dialih keluar daripada ConcurrentHashMap.

Bagaimana untuk Mengakses Elemen ConcurrentHashMap di Java?

Unsur-unsur ' ConcurrentHashMap ” boleh diakses dengan menggunakan berbilang kumpulan kaedah. Kumpulan pertama termasuk ' entrySet() ”, “ keySet() ” dan “ nilai() ” kaedah. Mereka digunakan untuk mengambil semua elemen sekaligus. Dengan menggunakan kaedah di atas, pengaturcara boleh memilih untuk mendapatkan semua “ kunci ”, “ nilai ” atau kedua-duanya “ kunci/nilai ” pemetaan peta.

Lawati kod di bawah untuk memahami pelaksanaan praktikal kaedah di atas:

import java.util.concurrent.ConcurrentHashMap ;

kelas Utama {
awam statik batal utama ( Tali [ ] args ) //penciptaan kaedah utama().
{ // Pengisytiharan ConcurrentHashMap
Pasukan ConcurrentHashMap = baru ConcurrentHashMap ( ) ;
Pasukan. letak ( 'Thor' , 2 ) ;
Pasukan. letak ( 'Pelik' , 4 ) ;
Pasukan. letak ( 'Hawkeye' , 6 ) ;
Pasukan. letak ( 'Harimau kumbang' , 8 ) ;
Sistem . keluar . println ( 'ConcurrentHashMap: ' + Pasukan ) ;
Sistem . keluar . println ( 'Dapatkan Kunci dan Nilai: ' + Pasukan. entriSet ( ) ) ;
Sistem . keluar . println ( 'Dapatkan Kekunci:' + Pasukan. set kunci ( ) ) ;
Sistem . keluar . println ( 'Mendapatkan Nilai:' + Pasukan. nilai ( ) ) ;
}
}

Penerangan blok kod di atas:

  • Mula-mula, buat 'ConcurrentHashMap' bernama ' Pasukan ' dan masukkan berbilang elemen di dalamnya menggunakan ' letak() ” kaedah.
  • Seterusnya, paparkan 'ConcurrentHashMap' pada konsol menggunakan ' out.println() ” kaedah.
  • Kemudian, gunakan ' entrySet() ” kaedah untuk mendapatkan semula semua data yang terdapat pada peta.
  • Selepas itu, gunakan ' keySet() ” kaedah untuk mendapatkan semula kunci sahaja daripada peta.
  • Pada akhirnya, gunakan ' nilai() ” kaedah untuk mendapatkan hanya nilai yang dikaitkan dengan setiap kunci. Ini hanya mengembalikan nilai dalam urutan.

Selepas pelaksanaan kod di atas:

Dalam petikan di atas, output kaedah yang digunakan di atas dipaparkan pada konsol. Dan sempadan warna yang berbeza digunakan untuk mencipta pemisahan visual antara output setiap kaedah.

Kini, kumpulan kedua termasuk ' dapatkan() ” dan “ getOrDefault() ” kaedah. Kaedah ini digunakan untuk mendapatkan semula ' kunci ' daripada ' ConcurrentHashMap ”. Sebagai contoh, lawati blok kod di bawah:

import java.util.concurrent.ConcurrentHashMap ;
kelas Utama {
awam statik batal utama ( Tali [ ] args ) //penciptaan kaedah utama().
{ // Pengisytiharan ConcurrentHashMap
Pasukan ConcurrentHashMap = baru ConcurrentHashMap ( ) ;
Pasukan. letak ( 'Thor' , 2 ) ;
Pasukan. letak ( 'Pelik' , 4 ) ;
Pasukan. letak ( 'Hawkeye' , 6 ) ;
Pasukan. letak ( 'Harimau kumbang' , 8 ) ;
Sistem . keluar . println ( 'Menggunakan getOrDefault(): ' + nilai2 ) ;

int nilai1 = Pasukan. dapatkan ( 'Hawkeye' ) ;
Sistem . keluar . println ( 'Kunci Diperoleh untuk Nilai yang ditentukan ialah: ' + nilai1 ) ;
int nilai2 = Pasukan. getOrDefault ( 'Romanoff' , 10 ) ;
Sistem . keluar . println ( 'ConcurrentHashMap: ' + Pasukan ) ;
}
}

Penjelasan kod di atas:

  • Gunakan yang sama ' ConcurrentHashMap ” yang dibuat dalam blok kod di atas.
  • Di samping itu, gunakan ' dapatkan() ” kaedah dan lulus nilai yang kuncinya akan diambil dalam kurungannya.
  • Selain itu, menggunakan ' getOrDefault() ” kaedah yang mengambil dua parameter/nilai, nilai dan kunci lalai. Jika objek yang ditentukan ditemui di dalam peta maka kunci yang sepadan akan diambil. Dan jika nilai yang ditentukan tidak dijumpai maka kunci lalai akan digunakan.
  • Selepas itu, simpan keputusan kedua-dua kaedah dalam pembolehubah dan paparkannya pada konsol untuk tujuan visualisasi.

Selepas pelaksanaan blok kod di atas:

Gambar di atas memaparkan kekunci relatif kepada nilai yang diambil dan dicetak pada konsol.

Kesimpulan

Untuk mengalih keluar/memadam elemen tertentu daripada “ ConcurrentHashMap 'yang' keluarkan() ” kaedah boleh digunakan. Dengan menggunakannya, pengaturcara boleh memadam elemen yang mempunyai ' kunci ” atau sepadan “ nilai ”. Dengan menggunakan ' jelas() ” kaedah, setiap elemen yang berada pada peta akan dipadamkan sekali gus. Untuk akses, ' entrySet() ”, “ keySet() ” dan “ nilai() ” kaedah digunakan. Mereka boleh mendapatkan semula semua ' kunci/nilai ”, “ kunci ”, dan “ nilai ' daripada ' ConcurrentHashMap ' sekaligus. Untuk mendapatkan semula kunci tertentu sahaja, ' dapatkan ” dan “ getOrDefault ” kaedah digunakan.