如何在Java中声明动态对象数组?

时间:2010-10-08 03:24:46

标签: java object

我想问一个关于Java的问题。我有一个用户定义的对象类student,它有2个数据成员,name和id。在另一个类中,我必须声明object [],(例如student stu[?];)。但是,我不知道对象数组的大小。是否可以声明对象数组但不知道大小?谢谢。

4 个答案:

答案 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)

它不可能,我们需要在声明对象数组时指定数组的大小;

  1. 声明对象数组的一种方法

    student st[];
    st=new student[]3;
    
  2. 第二种方式

    student st[]=new student[5];
    
  3. 在这两种情况下,不创建任何对象,只为数组分配空间。

    st=new student[1];
    

    这将创建一个新对象;

答案 3 :(得分:0)

您可以声明为:Student stu[]=null;,并使用固定大小stu[]=new Student[10]创建它,直到您知道大小。如果你必须使用数组。