Map接口下方的集合及特性

Posted lwf6869

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map接口下方的集合及特性相关的知识,希望对你有一定的参考价值。

 

技术图片

 

HashCode()方法需要重写,那么在重写时返回一个固定值,可以吗?会出现什么问题?(节点一直往一个单向链表上面添加,那就失去了hashmap的优势所在了)答案如下

 技术图片

 

 技术图片

 

 

技术图片

 

 

 

 技术图片

 

 为什么哈希表的随机增删,以及查询效率都很高?

增删都是在链表上面完成的

查询也只需要部分扫描(但是,要知道的,hashmap的查询没有ArrayList快,增删也不如双向链表。他就是一个两者之间的一个中间体)

为什么在我们实际开发中总是需要重写HashCode();方法呢?

原理类似于equals的方法重写,因为每个数据也都是有他的哈希值,如果我们没有对它进行重写,

那么比较的就是他们的哈希值,所以他肯定是会返回false,想要比较两个元素的值,我们就需要

对这个HashCode方法进行重写,并且我们看到equals方法和HashCode方法常常是一起重新写的

否则:

技术图片

 

 

 

 

 

技术图片

 

以上是关于Map接口下方的集合及特性的主要内容,如果未能解决你的问题,请参考以下文章

由浅入深理解java集合——集合 Map

Java之集合Map

java8新特性:对map集合排序

JDK9的新特性之一:集合接口的of()方法

JDK9的新特性之一:集合接口的of()方法

Java8新特性Stream之list转map及问题解决