Làm cách nào để xóa và truy cập các phần tử ConcurrentHashMap trong Java?

Lam Cach Nao De Xoa Va Truy Cap Cac Phan Tu Concurrenthashmap Trong Java



Các ' ConcurrentHashMap ” lớp là phiên bản nâng cao của HashMap truyền thống. Nó mang lại rất nhiều lợi ích cho lập trình viên như tiết kiệm nhiều thời gian, dễ dàng hơn và tăng cường tính linh hoạt. Nó có thể thực hiện nhiều nhiệm vụ song song cùng một lúc, tuy nhiên, đối với nhiều lần nâng cấp giá trị của các nút, chỉ một lần nâng cấp được thực hiện tại một thời điểm.

Bài viết này trình bày quy trình Xóa và truy cập các phần tử ConcurrentHashMap trong Java.

Làm cách nào để xóa các phần tử ConcurrentHashMap trong Java?

Các yếu tố cụ thể có thể được gỡ bỏ khỏi “ ConcurrentHashMap ” yếu tố thông qua “ di dời() ' phương pháp. Để xóa tất cả các phần tử cùng một lúc, nút “ thông thoáng() ” phương pháp là lựa chọn tốt nhất để lựa chọn.







Ngoài ra còn có hai biến thể của phương thức “remove()”:



  • Các ' xóa (phím) ” xóa thực thể có “ chìa khóa ” từ “ConcurrentHashMap”.
  • Các ' xóa (khóa, giá trị) ” xóa thực thể đã chỉ định “ chìa khóa ” dọc theo “ tương ứng giá trị ” từ “ConcurrentHashMap”.

Truy cập khối mã bên dưới để được giải thích rõ hơn:



nhập khẩu java.util.concurrent.ConcurrentHashMap ;
lớp học Nguồn gốc
{
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) //tạo phương thức main()
{ // Khai báo ConcurrentHashMap
Nhóm HashMap đồng thời = mới ConcurrentHashMap ( ) ;
Đội. đặt ( 'Thần sấm' , 2 ) ;
Đội. đặt ( 'Lạ lùng' , 4 ) ;
Đội. đặt ( 'Mắt diều hâu' , 6 ) ;
Hệ thống . ngoài . bản in ( 'Bản đồHash đồng thời:' + Đội ) ;

int giá trị = Đội. di dời ( 'Lạ lùng' ) ;
Hệ thống . ngoài . bản in ( 'Giá trị ' + giá trị + ' bị xóa' ) ;
Hệ thống . ngoài . bản in ( 'Bản đồHash đồng thời:' + Đội ) ;

boolean kết quả = Đội. di dời ( 'Mắt diều hâu' , 6 ) ;
Hệ thống . ngoài . bản in ( 'Mục {Hawkeye = 6} đã bị xóa chưa?' + kết quả ) ;
Hệ thống . ngoài . bản in ( 'Bản đồ ConcurrentHashMap đã cập nhật:' + Đội ) ;

Đội. thông thoáng ( ) ;
Hệ thống . ngoài . bản in ( 'Bản đồ ConcurrentHashMap đã cập nhật:' + Đội ) ;

}
}

Mô tả khối mã trên:





  • Đầu tiên, “ConcurrentHashMap” có tên “ Đội ” được tạo, sau đó dữ liệu giả được chèn vào bên trong nó bằng lệnh “ đặt ' phương pháp.
  • Tiếp theo, phần “ di dời() ” phương thức được sử dụng và khóa của “ Lạ lùng ” được chuyển đến nó. Phương pháp này loại bỏ thực thể khỏi bản đồ có khóa là “Lạ”.
  • Ngoài ra, hiển thị các yếu tố còn lại của bản đồ thông qua “ConcurrentHashMap”.
  • Bây giờ, vượt qua “ chìa khóa ” và tương ứng“ giá trị ” đến “ di dời() ” để xóa một thực thể khỏi “ConcurrentHashMap” có khóa và giá trị cụ thể.
  • Sau đó, hiển thị “ConcurrentHashMap” để thấy sự khác biệt một cách trực quan.
  • Cuối cùng, hãy sử dụng “ thông thoáng() ” để xóa tất cả các phần tử cư trú bên trong “ConcurrentHashMap”. Ngoài ra, hãy hiển thị “ConcurrentHashMap” trên bảng điều khiển ở cuối.

Sau khi kết thúc giai đoạn biên dịch:



Ảnh chụp nhanh hiển thị các phần tử đã bị xóa khỏi ConcurrentHashMap.

Làm cách nào để truy cập các phần tử ConcurrentHashMap trong Java?

Các yếu tố của “ ConcurrentHashMap ” có thể được truy cập bằng cách sử dụng nhiều nhóm phương thức. Nhóm đầu tiên bao gồm “ mụcSet() ”, “ bộ chìa khoá() ' Và ' giá trị() ” phương pháp. Chúng được sử dụng để truy xuất tất cả các phần tử cùng một lúc. Bằng cách sử dụng các phương pháp trên, lập trình viên có thể chọn truy xuất tất cả “ phím ”, “ giá trị ' hoặc cả hai ' giá trị cốt lõi ” bản đồ của bản đồ.

Truy cập đoạn mã dưới đây để hiểu cách triển khai thực tế của các phương pháp trên:

nhập khẩu java.util.concurrent.ConcurrentHashMap ;

lớp học Chủ yếu {
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) //tạo phương thức main()
{ // Khai báo ConcurrentHashMap
Nhóm HashMap đồng thời = mới ConcurrentHashMap ( ) ;
Đội. đặt ( 'Thần sấm' , 2 ) ;
Đội. đặt ( 'Lạ lùng' , 4 ) ;
Đội. đặt ( 'Mắt diều hâu' , 6 ) ;
Đội. đặt ( 'Con báo đen' , số 8 ) ;
Hệ thống . ngoài . bản in ( 'Bản đồHash đồng thời:' + Đội ) ;
Hệ thống . ngoài . bản in ( 'Truy xuất khóa và giá trị:' + Đội. mục nhậpSet ( ) ) ;
Hệ thống . ngoài . bản in ( 'Lấy chìa khóa:' + Đội. bộ chìa khoá ( ) ) ;
Hệ thống . ngoài . bản in ( 'Truy xuất giá trị:' + Đội. giá trị ( ) ) ;
}
}

Mô tả khối mã trên:

  • Đầu tiên, tạo một “ConcurrentHashMap” có tên “ Đội ” và chèn nhiều phần tử vào đó bằng cách sử dụng “ đặt() ' phương pháp.
  • Tiếp theo, hiển thị “ConcurrentHashMap” trên bảng điều khiển bằng cách sử dụng “ out.println() ' phương pháp.
  • Sau đó, sử dụng “ mụcSet() ” để truy xuất tất cả dữ liệu có trên bản đồ.
  • Sau đó, sử dụng “ bộ chìa khoá() ” để chỉ truy xuất các khóa từ bản đồ.
  • Cuối cùng, hãy sử dụng “ giá trị() ” để chỉ truy xuất các giá trị được liên kết với mỗi khóa. Điều này chỉ trả về các giá trị theo trình tự.

Sau khi thực thi đoạn mã trên:

Trong ảnh chụp nhanh ở trên, đầu ra của các phương thức được sử dụng ở trên được hiển thị trên bảng điều khiển. Và các ranh giới màu khác nhau được sử dụng để tạo ra sự phân tách trực quan giữa đầu ra của mỗi phương pháp.

Bây giờ, nhóm thứ hai bao gồm “ lấy() ' Và ' getOrDefault() ” phương pháp. Các phương pháp này được sử dụng để truy xuất “ phím ' từ ' ConcurrentHashMap ”. Chẳng hạn, hãy truy cập khối mã bên dưới:

nhập khẩu java.util.concurrent.ConcurrentHashMap ;
lớp học Chủ yếu {
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) //tạo phương thức main()
{ // Khai báo ConcurrentHashMap
Nhóm HashMap đồng thời = mới ConcurrentHashMap ( ) ;
Đội. đặt ( 'Thần sấm' , 2 ) ;
Đội. đặt ( 'Lạ lùng' , 4 ) ;
Đội. đặt ( 'Mắt diều hâu' , 6 ) ;
Đội. đặt ( 'Con báo đen' , số 8 ) ;
Hệ thống . ngoài . bản in ( 'Sử dụng getOrDefault():' + giá trị2 ) ;

int giá trị1 = Đội. lấy ( 'Mắt diều hâu' ) ;
Hệ thống . ngoài . bản in ( 'Khóa đã truy xuất cho Giá trị được chỉ định là:' + giá trị1 ) ;
int giá trị2 = Đội. getOrDefault ( 'Rômanoff' , 10 ) ;
Hệ thống . ngoài . bản in ( 'Bản đồHash đồng thời:' + Đội ) ;
}
}

Giải thích đoạn mã trên:

  • Sử dụng giống nhau “ ConcurrentHashMap ” được tạo trong khối mã trên.
  • Ngoài ra, hãy áp dụng “ lấy() ” và chuyển giá trị có khóa sẽ được truy xuất bên trong dấu ngoặc đơn của nó.
  • Hơn nữa, sử dụng “ getOrDefault() ” phương thức nhận hai tham số/giá trị, giá trị và khóa mặc định. Nếu đối tượng được chỉ định được tìm thấy bên trong bản đồ thì khóa tương ứng sẽ được truy xuất. Và nếu không tìm thấy giá trị đã chỉ định thì khóa mặc định sẽ được sử dụng.
  • Sau đó, lưu trữ kết quả của cả hai phương pháp trong các biến và hiển thị chúng trên bảng điều khiển cho mục đích trực quan hóa.

Sau khi thực thi khối mã trên:

Ảnh chụp nhanh ở trên hiển thị các khóa liên quan đến các giá trị được truy xuất và in trên bảng điều khiển.

Phần kết luận

Để xóa/xóa các phần tử cụ thể khỏi “ ConcurrentHashMap ' các ' di dời() có thể sử dụng phương pháp. Bằng cách sử dụng nó, lập trình viên có thể xóa một phần tử có “ chìa khóa ” hoặc tương ứng“ giá trị ”. Với việc sử dụng “ thông thoáng() ”, mọi phần tử nằm trên bản đồ sẽ bị xóa cùng một lúc. Để truy cập, nút “ mụcSet() ”, “ bộ chìa khoá() ' Và ' giá trị() ” phương pháp được sử dụng. Họ có thể truy xuất tất cả “ khóa/giá trị ”, “ phím ', Và ' giá trị ' từ ' ConcurrentHashMap ' một lần. Để chỉ truy xuất các khóa cụ thể, nút “ lấy ' Và ' getOrDefault ” phương pháp được sử dụng.