pit*_*las 5 java data-structures
我知道我无法将值存储在尚未使用的ArrayList的索引上,即小于大小。换句话说,如果myArrayList.size()为5,那么如果我尝试这样做
myArrayList.set(10, "Hello World")
Run Code Online (Sandbox Code Playgroud)
我将出现错误。但是我的应用程序需要这个。除了在每个中间插槽中存储空值的循环之外,还有其他更优雅的方法吗?
在我看来:
那么,什么是看起来很普通的案例的优雅解决方案呢?我肯定错过了什么...
我可以使用 HashMap 并使用索引作为键,但这确实效率很低。
依靠。如果您使用的索引非常稀疏,那么使用 Map 可能会更好。如果索引往往紧密相连,我认为没有比用空值填充更好的方法了。只需为其编写一个实用函数,您可以反复使用它,而不是在需要的地方重复循环,如下所示:
private void padTo(List<?> list, int size) {
for (int i=list.size(); i<size; i++)
list.add(null);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3665 次 |
最近记录: |