这就像我读过的java拼图一样,我知道没有任何实际好处。问题是-
“你能使用 Map
实现类似 ArrayList
的结构吗?这种构造有什么好处?”
然后我认为我们可以使用这样的结构(来存储String
) -
Map<Integer, String> dummyArrayList = new HashMap<>();
现在我们可以像这样使用该结构作为ArrayList
-
dummyArryList.put(1, "firstString");
dummyArrayList.put(2, "secondString");
dummyArrayList.put(9, "9thString");
这里的键就像ArrayList
的索引一样使用。我认为这种结构的好处(如果我错了,请纠正我)-
- 项目可以添加到任何索引处,其中
ArrayList
项目添加到ArrayList 的最后一个位置。
- 由于使用了散列,可以更快地访问项目(对此有点困惑)
我知道我们不应该在现实生活中使用这些类型的结构。但我只是想知道是否可以使用散列比索引更快地访问集合中的项目?
最佳答案
我同意第一点,它可以被视为一项功能。
但我猜访问它会比 ArrayList
慢。
在这种情况下,它会像
- 计算 key 的哈希值 (
hashcode()
) - 匹配哈希值
- 再次匹配 key (
equals()
) - 访问项目
ArrayList 的工作方式如下
- 像数组一样找到第一个(0索引)响应的 block
- 访问该项目
关于java - 让 Map 表现得像 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28979351/