gpt4 book ai didi

Java:存储到 ArrayList 的任意索引的最佳方式

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:47 24 4
gpt4 key购买 nike

我知道我不能在尚未使用的 ArrayList 的索引处存储一个值,即小于大小。换句话说,如果 myArrayList.size() 是 5,那么如果我尝试做

myArrayList.set(10, "Hello World") 

我会得到一个越界错误。但是我的应用程序需要这个。除了在每个中间槽中循环存储null,还有更优雅的方法吗?

在我看来是这样的:

  • 此行为在 Vector 中是相同的
  • 如果我需要能够随机访问(即位置 X 处的元素),那么我的选择是 Vector 和 ArrayList。
  • 我可以使用 HashMap 并将索引用作键,但这样效率很低。

那么对于看起来很常见的情况,优雅的解决方案是什么?我一定是错过了什么......

最佳答案

I could use a HashMap and use the index as a key but that's really inefficient.

视情况而定。如果您使用的索引非常稀疏,使用 Map 可能会好得多。如果索引往往靠得很近,我认为没有比用空值填充它更好的方法了。只需为它编写一个实用函数,您可以一遍又一遍地使用它,而不是在您需要它的任何地方重复循环,就像这样:

private void padTo(List<?> list, int size) {
for (int i=list.size(); i<size; i++)
list.add(null);
}

关于Java:存储到 ArrayList 的任意索引的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9231018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com