我想问一个关于Java的问题。我有一个用户定义的对象类student,它有2个数据成员,name和id。在另一个类中,我必须声明object [],(例如student stu[?];
)。但是,我不知道对象数组的大小。是否可以声明对象数组但不知道大小?谢谢。
答案 0 :(得分:22)
正如您现在可能已经想到的那样,Java中的常规数组具有固定大小(数组的大小无法更改),因此为了将项动态添加到数组,您需要一个可调整大小的数组。在Java中,可调整大小的数组实现为ArrayList类(java.util.ArrayList
)。
一个简单的使用示例:
import java.util.ArrayList;
// Adds a student to the student array list.
ArrayList<Student> students = new ArrayList<Student>();
students.add(new Student());
<Student>
括号(Java中称为泛型的特征)是可选的;但是,你应该使用它们。基本上它们限制了您可以存储在数组列表中的对象类型,因此您最终不会将String对象存储在一个充满Integer对象的数组中。
答案 1 :(得分:18)
用户ArrayList
。它会在您添加新元素时自动扩展。如果需要,稍后您可以将其转换为数组。
作为另一种选择(不确定您想要什么),您可以声明Object[]
字段,而不是立即初始化。
答案 2 :(得分:1)
它不可能,我们需要在声明对象数组时指定数组的大小;
声明对象数组的一种方法
student st[];
st=new student[]3;
第二种方式
student st[]=new student[5];
在这两种情况下,不创建任何对象,只为数组分配空间。
st=new student[1];
这将创建一个新对象;
答案 3 :(得分:0)
您可以声明为:Student stu[]=null;
,并使用固定大小stu[]=new Student[10]
创建它,直到您知道大小。如果你必须使用数组。