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.lang.IllegalStateException:键 f0 的片段不再存在:索引 1
Java、HashMaps 和使用字符串作为键 - 字符串值是不是被存储两次?