【发布时间】:2023-04-02 02:52:01
【问题描述】:
我需要将元素动态添加到数组中。有人可以帮我吗?
int[] 数据 =new int[10];我怎样才能为动态条目制作这个数组?
我从 stackoverflow 本身获得了这些代码。我认为它可能有效..
**公共类 DynamicArrayOfInt
{
私有 int[] 数据;
public DynamicArrayOfInt() {
data = new int[1];
}
public int get(int 位置) {
if (position >= data.length)
return 0;
else
return data[position];
}
public void put(int position, int value) {
if (position >= data.length)
{
int newSize = 2 * data.length;
if (position >= newSize)
newSize = 2 * position;
int[] newData = new int[newSize];
System.arraycopy(data, 0, newData, 0, data.length);
data = newData;
System.out.println("Size of dynamic array increased to " + newSize);
}
data[position] = value;
} }**
//System.arraycopy(data, 0, newData, 0, data.length);谁能解释一下这些传递参数?
【问题讨论】:
-
我只尝试了固定大小的数组。事情是我处于学习阶段..如果你有动态数组的代码请与我分享
-
请添加代码!
-
@Dkkarnavar,使用ArrayList有什么问题?
-
@Dkkarnavar 逻辑很简单。如果数组已满,则创建一个更大的数组并将数组内容复制到其中,然后添加新元素。您可以使用循环复制内容,或使用
System.arrayCopy。 -
我必须同意@Masud。 ArrayList 正是为您做到这一点。最重要的是,它具有有趣的实用功能,并且可能在引擎盖下进行了优化。除了学习示例之外,真的没有理由手动重新发明 ArrayList。