Java 中数组的动态大小调整
Dynamic resizing of Array in Java
我想在 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};
}
}
最好使用 arraylist,arraylist 可以增长,这对于数组来说是不可能的。如果您将内容复制到另一个具有不同大小的数组中,请使用 System.arraycopy() 但先前的数组将存在。更好的方法是使用 arraylist 或 vector
是的,因为当您认为您正在调整它的大小时,您实际上是在创建一个具有不同大小的新数组。太期待了!!!
当你写:
arr=new int[N]
您实际上丢弃您的数组对象并创建一个新的大小为 N 的 int 数组。这个新对象不会包含您之前的数组的值。
如果创建更大的数组,则必须将以前的值复制到其中。
更好的是,使用 Java 的数据结构之一,例如 Vector<Integer>
或 ArrayList<Integer>
。它们使用动态数组,但您不必了解它也不必担心 - 它们只是有效...
Java 中的数组具有固定大小。使用 ArrayLists,它是一个集合并且可以动态缩放。
而不是
Integer[] ints = new Integer[x]
使用
List<Integer> ints = new ArrayList<Integer>();
我想在 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};
}
}
最好使用 arraylist,arraylist 可以增长,这对于数组来说是不可能的。如果您将内容复制到另一个具有不同大小的数组中,请使用 System.arraycopy() 但先前的数组将存在。更好的方法是使用 arraylist 或 vector
是的,因为当您认为您正在调整它的大小时,您实际上是在创建一个具有不同大小的新数组。太期待了!!!
当你写:
arr=new int[N]
您实际上丢弃您的数组对象并创建一个新的大小为 N 的 int 数组。这个新对象不会包含您之前的数组的值。
如果创建更大的数组,则必须将以前的值复制到其中。
更好的是,使用 Java 的数据结构之一,例如 Vector<Integer>
或 ArrayList<Integer>
。它们使用动态数组,但您不必了解它也不必担心 - 它们只是有效...
Java 中的数组具有固定大小。使用 ArrayLists,它是一个集合并且可以动态缩放。
而不是
Integer[] ints = new Integer[x]
使用
List<Integer> ints = new ArrayList<Integer>();