概述
HashMap 概述
HashMap 是 Map 接口的实现,HashMap 允许空的 key-value 键值对,HashMap 被认为是 Hashtable 的增强版,HashMap 是一个非线程安全的容器,如果想构造线程安全的 Map 考虑使用 ConcurrentHashMap。HashMap 是无序的,因为 HashMap 无法保证内部存储的键值对的有序性。
HashMap 的底层数据结构是数组 + 链表的集合体,数组在 HashMap 中又被称为桶(bucket)。遍历 HashMap 需要的时间损耗为 HashMap 实例桶的数量 + (key - value 映射) 的数量。因此,如果遍历元素很重要的话,不要把初始容量设置的太高或者负载因子设置的太低。
HashMap 实例有两个很重要的因素,初始容量和负载因子,初始容量指的就是 hash 表桶的数量,负载因子是一种衡量哈希表填充程度的标准,当哈希表中存在足够数量的 entry,以至于超过了负载因子和当前容量,这个哈希表会进行 rehash 操作,内部的数据结构重新 rebuilt。
注意 HashMap 不是线程安全的,如果多个线程同时影响了 HashMap ,并且至少一个线程修改了 HashMap 的结构,那么必须对 HashMap 进行同步操作。可以使用 Collections.synchronizedMap(new HashMap) 来创建一个线程安全的 Map。
HashMap 会导致除了迭代器本身的 remove 外,外部 remove 方法都可能会导致 fail-fast 机制,因此尽量要用迭代器自己的 remove 方法。如果在迭代器创建的过程中修改了 map 的结构,
最后
以上就是乐观仙人掌为你收集整理的hashmap是有序还是无序_java中HashMap的详细解读HashMap 概述HashMap 和 HashTable 的区别相同点不同点HashMap 和 HashSet 的区别HashMap 底层结构AbstractMap 类Map 接口重要内部类和接口Node 接口KeySet 内部类Values 内部类EntrySet 内部类HashMap 1.7 的底层结构HashMap 1.8 的底层结构HashMap 重要属性HashMap 构造函数讲一讲 HashMap put 的全过程Ha的全部内容,希望文章能够帮你解决hashmap是有序还是无序_java中HashMap的详细解读HashMap 概述HashMap 和 HashTable 的区别相同点不同点HashMap 和 HashSet 的区别HashMap 底层结构AbstractMap 类Map 接口重要内部类和接口Node 接口KeySet 内部类Values 内部类EntrySet 内部类HashMap 1.7 的底层结构HashMap 1.8 的底层结构HashMap 重要属性HashMap 构造函数讲一讲 HashMap put 的全过程Ha所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复