2024滴滴校招面试真题汇总及其讲解(二)

4.【基础题】HashMap了解吗?介绍一下它对应的线程安全版本。

HashMap 是 Java 中一种键值对映射的集合,它使用哈希表来存储键值对。HashMap 具有插入和删除元素效率高的优势,但不是线程安全的。

ConcurrentHashMap 是 Java 中一种线程安全的 HashMap,它使用分段锁来保证线程安全。ConcurrentHashMap 具有 HashMap 的所有优势,并且还具有线程安全的特性。

ConcurrentHashMap 的工作原理是将哈希表分为多个段,每个段使用一个锁来保护。当多个线程同时访问同一个段时,会使用锁来同步访问,从而保证线程安全。

ConcurrentHashMap 的优点是线程安全,可以同时被多个线程访问。缺点是效率略低于 HashMap,因为需要使用锁来同步访问。

ConcurrentHashMap 的使用示例:

Java

import java.util.concurrent.ConcurrentHashMap;
public class ConcurrentHashMapExample {

  public static void main(String[] args) {
	  ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
	  map.put("a", 1);
	  map.put("b", 2);
	  map.put("c", 3);

	  System.out.println(map.get("a")); // 1
	  System.out.println(map.get("b")); // 2
	  System.out.println(map.get("c")); // 3
 

猜你喜欢

转载自blog.csdn.net/cq20110310/article/details/132912283
今日推荐