Java中的HashMaps - 索引与否

Posted

tags:

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

问题:我们在java中使用的HashMap(Map)是否已编入索引?如果它被编入索引,你能简单解释一下吗?

答案

尝试使用LinkedHashMap而不是HashMap,它通过插入来命令元素。参考:Java - get index of key in HashMap?

另一答案

HashMap包含键值对。每个密钥只能存在一次。

您无法使用索引获取值,但需要使用该方法

 HashMap.get()

可以在这里找到一个体面的教程:https://beginnersbook.com/2013/12/hashmap-in-java-with-example/

另一答案

HashMaps是哈希表的实现。所有Classes都继承自Object类的hashCode()函数用于理想地生成唯一的整数。 hashCode整数用于将对象值映射到一个位置,假设低冲突,搜索时间为O(1)。如果hashCode()函数很差并且为HashMap中的许多键生成相同的值,则搜索时间可能会降低(一旦Map中的条目数超过加载因子和当前容量的乘积,HashMap就会自动重新组合) 。

从某种意义上说,HashMaps被编入索引,这就是它们的良好性能。但是,它们没有以您从索引获取项目的方式编制索引,并且HashMap类不能确保保留订单;你将需要使用LinkedHashMap

以上是关于Java中的HashMaps - 索引与否的主要内容,如果未能解决你的问题,请参考以下文章

鉴于 jdk1.6 及更高版本中的 HashMaps 导致多线程问题,我应该如何修复我的代码

java 使用Hashmaps检查Anagrams

java.lang.IllegalStateException:键 f0 的片段不再存在:索引 1

Java、HashMaps 和使用字符串作为键 - 字符串值是不是被存储两次?

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

如何在Java中访问嵌套的HashMaps?