我想在Java中使用动态数组,
我将静态地声明数组,我将在数组中输入值,一旦数组变满,我将重新定义数组大小。
是否将删除数组的内容或将其保留。
我的程序中是否删除了内容,无论是否预期? 实施例
class a
{
static int arr[]=new int[10];
arr[]={1,2,3,4,5};
public static void main(String args[])
{
int N=35;
arr=new int[N];
arr[]={1....35};
}
}
答案 0 :(得分:4)
是的,因为当你认为你正在重新调整大小时,你实际上是在创建一个不同大小的新数组。这是非常期待的!!!
答案 1 :(得分:3)
当你写:
arr=new int[N]
你实际上丢弃你的数组对象并创建一个大小为N的新数组。这个新对象不会包含你以前数组的值。
如果创建较大的数组,则必须将以前的值复制到该数组。
更好的是,使用Java的数据结构之一,例如Vector<Integer>
或ArrayList<Integer>
。这些使用动态数组,但您不必了解它,也不必担心 - 它们只是工作......
答案 2 :(得分:2)
更好地使用arraylist,arraylist可以增长,这是阵列无法实现的。如果要将内容复制到另一个具有不同大小的数组,请使用System.arraycopy()但前一个数组将存在。更好的方法是使用arraylist或vector
答案 3 :(得分:0)
Java中的数组具有固定的大小。使用ArrayLists这是一个集合&amp;可以动态扩展。
而不是
Integer[] ints = new Integer[x]
使用
List<Integer> ints = new ArrayList<Integer>();