【发布时间】:2015-05-12 19:31:38
【问题描述】:
这有点像我读过的 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.末尾的任何索引处添加项目 - 使用散列可以更快地访问项目(对此有点困惑)
我知道我们不应该在现实生活中使用这些类型的结构。但我只想知道是否可以使用散列比索引更快地访问集合中的项目?
【问题讨论】:
-
不,它永远不会真正更快。
-
@LouisWasserman 一个极其稀疏的列表(想想一个有两个非空值,一个为 0,一个为 Integer.MAX_VALUE)肯定会更快地创建,并且可能更快地操作——假设您甚至可以创建 ArrayList 而不会耗尽内存,而您很可能无法做到。
标签: java dictionary arraylist hash hashmap