`

每天一道面试题-ConcurrentHashMap vs HashMap vs LinkedHashMap vs HashTable

 
阅读更多

HashMap:

查询和插入速度极快,但是线程不安全,在多线程情况下在扩容的情况下可能会形成闭环链路,耗光cpu资源。

LinkedHashMap:

基本和HashMap实现类似,多了一个链表来维护元素插入的顺序,因此维护的效率会比HashMap略低。但是因为有链表的存在,遍历效率会高于HashMap。

HashTable:

线程安全,但性能较差,已经不推荐使用

ConcurrentHashMap:

线程安全,而且采用分段锁的方式进行数据同步,因此相对于Hashtable来说,效率要高。但是因为引入了段的概念,所以每次元素插入或者获取,需要进行两次哈希算法,第一次确定到该元素位于哪一段,第二次才能真正确定到元素位置。因此效率会低于HashMap。不过在多线程情况下,这种性能的牺牲换取数据安全是非常值得的。因此在多线程的情况下应该首选ConcurrentHashMap。

--------------------- 本文来自 互联网十年老兵- 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/happy_coding_life/article/details/80381293?utm_source=copy 

分享到:
评论

相关推荐

    2024年java面试题-java集合相关面试题

    - **LinkedHashMap**:结合了HashMap和双向链表的特性,保持元素插入顺序。 - **HashTable**:与HashMap类似,但线程安全。 - **TreeMap**:基于红黑树实现,支持键的自然排序或自定义排序。 ### 五、线程安全的...

    java中级面试题(自己汇总)

    本文总结了Java中级面试题,涵盖了集合、HashMap、HashSet、HashTable、ConcurrentHashMap、红黑树、Java 8对HashMap的优化、LinkedHashMap、TreeMap、IdentityHashMap等知识点。 集合 * List和Set都是继承自...

    Java 72道面试题和答案.docx

    - Map:键值对容器,键唯一,值可重复,如HashMap、TreeMap、HashTable、LinkedHashMap和ConcurrentHashMap。 7. **底层数据结构**: - ArrayList和Vector基于Object数组实现。 - LinkedList是双向循环链表。 -...

    Java集合框架面试题

    "Java集合框架面试题" Java 集合框架是 Java 语言中的一组预定义类和接口的集合,用于存储和操作数据。下面是 Java 集合框架的知识点总结: 1. Java 集合类主要有两大分支:Collection 接口和 Map 接口。...

    农行研发中心-校招常见面试题汇总.pdf

    Map接口的实现类有HashMap、HashTable、LinkedHashMap等。 2. 数组和集合的区别 数组和集合是Java语言中两种不同的数据结构。数组是一种固定大小的、同类型的元素组成的数据结构,而集合是一个可变大小的、可存储...

    尚硅谷大厂面试题第二季周阳主讲整理笔记

    在Java集合框架中,Map接口的实现类是面试常考知识点,如HashMap、LinkedHashMap、HashTable、ConcurrentHashMap和TreeMap。 - **HashMap**:HashMap是最常用的Map实现,它提供了高效的查找和插入操作,但不是线程...

    BATjava面试含答案

    1. 常用的 Map 集合有 HashMap、HashTable、LinkedHashMap、ConcurrentHashMap。 2. Collection 是 List、Set 父接口不是 Map 父接口。 3. HashMap 不是线程安全的,线程安全的有 HashTable、ConcurrentHashMap、...

    2021-3月Java面试题.docx

    主要实现类有HashMap、LinkedHashMap、TreeMap和Hashtable。 - HashMap是基于哈希表的数据结构,JDK1.8以前是数组+链表,JDK1.8后引入了红黑树,当链表长度达到8时转换为红黑树,提高了查找效率。 - LinkedHashMap...

    Java 72 道面试题及答案.docx

    - **Map接口**:存储键值对,不继承Collection接口,例如HashMap、TreeMap、Hashtable、ConcurrentHashMap和Properties。 4. **集合框架的底层数据结构** - **List实现类底层数据结构**: - ArrayList基于Object...

    Java集合面试题 52道.pdf

    - Map接口的实现类:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties。 4. 关于集合的线程安全问题,有如Vector和Hashtable这样的类,它们通过内部同步机制(synchronized关键字)提供了线程安全的...

    收集的各公司的java笔试面试题

    - HashMap、HashTable、LinkedHashMap和ConcurrentHashMap的区别和使用场景。 - 集合与数组之间的转换,以及集合操作(添加、删除、遍历)。 3. **字符串处理**: - String类的特性,不可变性,以及...

    BAT互联网Java面试题汇总.pdf

    ### BAT互联网Java面试题汇总知识点解析 #### 一、HashMap的底层原理及冲突解决机制 - **HashMap** 是一种常用的数据结构,在Java中用于存储Key-Value键值对。其核心是一个数组`table`,数组中的每个元素是一个...

    2019年一线互联网公司Java高级面试题总结

    根据给定文件的信息,我们可以将知识...以上知识点涵盖了Java高级面试题的多个方面,包括基本概念、设计模式、框架应用以及分布式系统的设计与实现。对于准备面试的开发者来说,深入理解并掌握这些知识点是非常重要的。

    java经典面试题

    ### Java经典面试题知识点梳理 #### J2SE基础 1. **九种基本数据类型的大小,及其封装类**: - Java提供了八种基本数据类型(`byte`, `short`, `int`, `long`, `float`, `double`, `boolean`, `char`),每种类型...

    40道java集合面试题含答案(很全很详细)

    - Map接口的实现类有HashMap、TreeMap、Hashtable、ConcurrentHashMap和Properties。 6. **List、Set、Map的区别**: - List:有序,元素可重复,允许多个null,通过索引访问。 - Set:无序,元素唯一,仅允许一...

    30个Java经典的集合面试题!.zip

    - Map接口:HashMap、TreeMap、LinkedHashMap和Hashtable是其主要实现类。 6. **迭代器(Iterator)**: - 迭代器是遍历集合的主要方式,提供了hasNext()和next()方法来依次访问集合元素。 7. **泛型(Generics...

    java面试题大全

    - HashMap、HashTable、LinkedHashMap、ConcurrentHashMap的区别和使用场景。 - 集合遍历方式:迭代器和增强for循环。 4. **内存管理**: - 内存区域:栈、堆、方法区、本地方法栈和程序计数器。 - 垃圾回收...

    JAVA经典面试题附答案

    JAVA经典面试题附答案 JAVA基础知识点: 1. JAVA中的基本类型: JAVA中的基本类型有八种:byte、short、int、long、float、double、char、boolean。每种类型占用的字节数分别为:1、2、4、8、4、8、2、1。 2. ...

Global site tag (gtag.js) - Google Analytics