Java的HashMap

Posted 抒抒说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的HashMap相关的知识,希望对你有一定的参考价值。

FAQ:

  1. 为什么要有HashMap

    答:我非常期待能在Java 中使用Hash表 这种数据结构 ,因为它的快速存取特性。

  2. Hash表 和HashMap的关系?

    答:Hash表 是一种逻辑数据结构,HashMap是Java中的一种数据类型(结构类型),它通过代码实现了Hash表 这种数据结构,并在此结构上定义了一系列操作。

  3. 这一章节我们要干嘛?

    答:首先要明白我们是在干嘛,我们是在分析一个叫做哈希表的数据结构吗?

    不是!不是!不是!我们是在讨论一种高级程序设计语言中某个数据类型的实现,它实现了哈希表这种数据结构,但它绝不是哈希表本身,它就是它自己 - HashMap类型。

    不明白的话我再说一句:记不记得你学Map(HashMap父接口)时见到的第一句描述“An object that maps keys to values. ”简单翻译就是:Map是一个键值对对象。但是,可没人告诉过你哈希表是键值对结构。

  4. Java中的数据类型

    答:有些话不明白的说出来,其实容易让人想不明白。所以我想说:

    • 实际上,编程语言中数据类型都是层层封装的结果;
    • 实际上,Java 中只有3类数据类型:原生类型(primitive8个)、数组、Object;
    • 实际上,无论官方的集合框架也好,你自己创建的类也好,都只能是源自于Object并依赖于原有的这3类数据类型;
    • 最终,到现在你可能才会发现,“数组”这种类型竟是如此的重要,在Java 中,如果没有数组作为基础结构,你是不可能构造出任何想实现某种数据结构的Object类型的。

以上是关于Java的HashMap的主要内容,如果未能解决你的问题,请参考以下文章

hashmap冲突的解决方法以及原理分析:

包含不同片段的HashMap(或ArrayList)

大厂面试必问!HashMap 怎样解决hash冲突?

HashMap 和 ConcurrentHashMap 的区别

HashMap原理:哈希函数的设计

HashMap深度解析