m4t*_*4tx 7 java indexing arraylist map
就像标题一样.做这样的事情是可以的:
HashMap<Integer, Object> foo = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
或者可能有更好的容器允许在任何索引处添加值?当说"更好"时,我的意思是"拥有更好的性能",然后"使用更少的RAM".
ArrayList<Object> bar = new ArrayList<>();
bar.add(10_000, new Object());
Run Code Online (Sandbox Code Playgroud)
想要在上面的代码中做一些事情,但这当然不适用于ArrayList.我想做的清单很稀疏; 索引是传播的 - 这就是我考虑HashMap而不是ArrayList的原因.
问候.
您正在做的(实际上)是用来HashMap表示稀疏数组。
这可能是一个合理的实现选择,但其功效取决于您想要实现的目标以及数组的属性。
如果数组足够稀疏,那么您可以使用 aHashMap而不是简单数组来节省内存。然而,与非稀疏数组相比,aHashMap使用的内存大约比数组多一个数量级。最重要的是,a 上的get和操作比索引简单数组大约慢一个数量级。putHashMap
此外,根据数组的大小和稀疏性,有些表示形式使用的空间明显少于a HashMap(例如 Android 稀疏数组类),但代价是 get/put 性能无法扩展。