我想在数组中存储用户所需的尽可能多的元素.但我该怎么做?如果我要创建一个数组,我必须使用固定大小.每次将一个新元素添加到数组并且数组变满时,我想用'1'更新它的大小.我厌倦了各种类型的代码..但是它没有用完.如果不是这样的话会很有帮助.如果可能的话,yall可以给我一些关于它的解决方案.谢谢.谢谢
小智 8
您可以创建一个比原始数组大 1 个元素的临时数组,然后将原始数组的元素复制到 temp 中,并将临时数组分配给新数组。
public void increaseSize() {
String[] temp = new String[original.length + 1];
for (int i = 0; i < original.length; i++){
temp[i] = original[i];
}
original = temp;
}
Run Code Online (Sandbox Code Playgroud)
您可以通过多种方式更改大小,但原理相同。
代替使用一个阵列的,使用的实施方案java.util.List,例如ArrayList.ArrayList有一个数组后端,它在列表中保存值,但数组大小会自动由列表处理.
ArrayList<String> list = new ArrayList<String>();
list.add("some string");
Run Code Online (Sandbox Code Playgroud)
list.toArray(new String[list.size()])对于其他元素类型,您还可以使用等等将列表转换为数组.
在低级别上,您可以这样做:
long[] source = new long[1];
long[] copy = new long[source.length + 1];
System.arraycopy(source, 0, copy, 0, source.length);
source = copy;
Run Code Online (Sandbox Code Playgroud)
Arrays.copyOf() 也在做同样的事情。