原文:JDK1.8源码(三)——java.util.HashMap

什么是哈希表 在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能 数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O 通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O n ,当然,对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O logn 对于一般的插入删除操作,涉及到数组元素的移 ...

2018-09-28 16:26 1 719 推荐指数:

查看详情

JDK1.8源码(七)——java.util.HashMap

  本篇博客我们来介绍在 JDK1.8HashMap源码实现,这也是最常用的一个集合。但是在介绍 HashMap 之前,我们先介绍什么是 Hash表。 1、哈希表   Hash表也称为散列表,也有直接译作哈希表,Hash表是一种根据关键字值(key - value)而直接进行访问 ...

Fri Apr 13 06:49:00 CST 2018 19 14882
java.util.HashMapjava.util.HashTable (JDK1.8)

一、java.util.HashMap 1.1 java.util.HashMap 综述 java.util.HashMap继承结构如下图 HashMap是非线程安全的,key和value都支持null HashMap的节点是链表,节点的equals比较的是节点的key和value内容 ...

Wed Dec 06 04:36:00 CST 2017 0 1884
JDK1.8源码(九)——java.util.LinkedHashMap 类

  前面我们介绍了 Map 集合的一种典型实现 HashMap ,关于 HashMap 的特性,我们再来复习一遍:   ①、基于JDK1.8HashMap是由数组+链表+红黑树组成,相对于早期版本的 JDK HashMap 实现,新增了红黑树作为底层数据结构,在数据量较大且哈希碰撞较多 ...

Wed Nov 21 16:51:00 CST 2018 8 3851
JDK1.8源码(四)——java.util.Arrays 类

  java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用。 1、asList   作用是返回由指定数组支持的固定大小列表。   注意:这个方法返回的 ArrayList ...

Mon Mar 26 15:21:00 CST 2018 2 10905
JDK1.8源码(六)——java.util.LinkedList 类

  上一篇博客我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,本篇博客我们介绍 List 集合的另一种典型实现 LinkedList,这是一个由 ...

Mon Apr 02 17:44:00 CST 2018 4 9892
JDK1.8源码(六)——java.util.ArrayList类

一、概述 1、介绍   ArrayList元素是有序的,可重复。线程不安全的。底层维护一个 Object 数组。  JDK1.7:ArrayList像饿汉式,默认初始长度直接创建一个容量为 10 的数组。  JDK1.8:ArrayList像懒汉式,默认一开始创建一个长度为 0 的数组,当添加 ...

Tue Sep 28 17:50:00 CST 2021 0 341
JDK1.8源码(十)——java.util.LinkedHashSet类

  同 HashSet 与 HashMap 的关系一样,本篇博客所介绍的 LinkedHashSet 和 LinkedHashMap 也是一致的。在 JDK 集合框架中,类似 Set 集合通常都是由对应的 Map 类集合来实现的(TreeSet 和 TreeMap 同理),这里很重要的一个理论 ...

Sat Nov 24 17:23:00 CST 2018 0 1559
JDK1.8源码(八)——java.util.HashSet 类

  在上一篇博客,我们介绍了 Map 集合的一种典型实现 HashMap ,在 JDK1.8 中,HashMap 是由 数组+链表+红黑树构成,相对于早期版本的 JDK HashMap 实现,新增了红黑树作为底层数据结构,在数据量较大且哈希碰撞较多时,能够极大的增加检索的效率。了解 ...

Thu Oct 25 04:07:00 CST 2018 1 6183
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM