Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这是最好的方法吗;增加;数组列表的大小?_Java_Arrays_Size_Capacity - Fatal编程技术网

Java 这是最好的方法吗;增加;数组列表的大小?

Java 这是最好的方法吗;增加;数组列表的大小?,java,arrays,size,capacity,Java,Arrays,Size,Capacity,经过一些研究,我发现容量和大小并不是一回事。因此,为了“增加”大小,我刚刚添加了一个for循环,该循环运行大小倍,每次都添加一个null: tempArray.set(index, values.get(leftFirst)); for(int i=0;i=list.size()设置一个值时,他只是用一张地图试了一下,效果非常好,完全符合我的需要,谢谢!需要注意的是,我们必须添加一个(T)cast使其工作:values.set(index,(T)temp.get(index))@Alex将地图

经过一些研究,我发现容量和大小并不是一回事。因此,为了“增加”大小,我刚刚添加了一个for循环,该循环运行大小倍,每次都添加一个null:

tempArray.set(index, values.get(leftFirst));
for(int i=0;i

这是最好的解决方案吗?

您正在尝试使用ArrayList作为映射,因此只需切换到map并将键保留为整数:

for (int i = 0; i < size; i++)
    tempArray.add(null);
请注意,如果索引以一百万开头,那么将有大约一百万个空值不被使用。这似乎是非常不必要和错误的执行

编辑

在评论/问题中,使用
T
声明地图:

    map.get(index)
Map Map=newhashmap(大小);

在我看来,最好的方法是首先创建泛型类型的数组,然后使用ArrayList创建包装器

1.您可以看到如何从泛型类型创建数组


2.您可以查看如何从数组创建ArrayList

它是动态的。如果删除了元素,则不需要减小大小。如果删除了元素,则大小会缩小,或者添加了元素,则大小会增大。我想您不明白我的要求。我的set方法是抛出IndexOutOfBounds错误,直到我通过反复添加null来“增加”大小,我问这是一个合适的解决方案,还是有一个更干净、更有效的方法来实现这一点。是的,这是一个解决方案,现在当你需要一个特定的索引时,为什么要使用
列表
?您是否希望找到大量的
null
?你有没有想过使用
地图
?@Alex你能把你的代码包括进去吗?他已经做过了,@Lokesh。当他用
索引>=list.size()
设置一个值时,他只是用一张地图试了一下,效果非常好,完全符合我的需要,谢谢!需要注意的是,我们必须添加一个(T)cast使其工作:
values.set(index,(T)temp.get(index))
@Alex将地图声明为
map
,您将不需要演员阵容。是的,这修复了它!
    Map<Integer, Object> map = new HashMap<>(size);
    map.put(index, values.get(leftFirst));
    map.get(index)
Map<Integer, T> map = new HashMap<>(size);