问题: 我们在java中使用的HashMap(Map)是否已编入索引?如果它被编入索引,你能简单解释一下吗?
答案 0 :(得分:1)
尝试使用LinkedHashMap而不是HashMap,它通过插入来命令元素。参考:Java - get index of key in HashMap?
答案 1 :(得分:1)
HashMaps包含键和值对。每个密钥只能存在一次。
您无法使用索引获取值,但需要使用方法
HashMap.get()
可以在这里找到一个体面的教程: https://beginnersbook.com/2013/12/hashmap-in-java-with-example/
答案 2 :(得分:1)
HashMaps是哈希表的实现。所有Classes都继承自Object类的hashCode()函数用于理想地生成唯一的整数。 hashCode整数用于将对象值映射到一个位置,假设低冲突,搜索时间为O(1)。如果hashCode()函数很差并且为HashMap中的许多键生成相同的值,则搜索时间可能会降低(一旦Map中的条目数超过加载因子和当前容量的乘积,HashMap就会自动重新组合)
从某种意义上说,HashMaps被编入索引,这就是它们的良好表现。但是,它们没有以您从索引获取项目的方式编制索引,并且HashMap类不能确保保留订单;您需要使用LinkedHashMap。