将对象添加到数组

时间:2013-11-07 10:53:27

标签: java arrays object

我一直在研究如何将元素添加到数组How can I dynamically add items to a Java array?

我不明白如何添加类类型的对象,而不是String这样的数据类型。当对象患者具有各种数据类型时,我该怎么做?我无法理解的是如何将Patient对象的属性放入数组中。

Class Patient{

    public Patient(String ptNo, String ptName, int procType) throws IOException
    {
        Patient.patientNo =  ptNo;
        Patient.patientName = ptName;
        Patient.procedureType = procType;
    }
}

另一堂课:

public static void main(String[] args) throws IOException
    {
        Patient [] patients;
        Patient p = new Patient(null, null, 0);

        int i = 0;
        for (i = 0; i < 2; i++)
        {
        patients.add(p);
        }
    }

我明白我错过了显而易见的事情,只是在耗尽其他资源后才来到这里。

6 个答案:

答案 0 :(得分:3)

您需要指定数组大小,如下所示

Patient [] patients = new Patient[2];

然后现在添加如下的元素

patients[i] = new Patient(null, null, 0)

完整的代码如下

for (int i = 0; i < 2; i++)
{
  patients[i] = new Patient(null, null, 0);
}

答案 1 :(得分:2)

您需要使用索引访问数组

patients[i] = p;

但在此之前你还需要初始化它。

Patient [] patients = new Patient[10]; // random init

由于您希望它们是动态的,请尝试使用ArrayList并继续向其添加对象。

List<Patient> patients = new ArrayList<>();
patients.add(p);

答案 2 :(得分:2)

您正在使用数组而不是ArrayList,因此通过指定索引

来添加它们
    for (i = 0; i < 2; i++)
    {
    patients[i] = p;
    }

修改

如果你真的想在字符串中分配相同的对象,你甚至可以跳过对象引用,比如

public static void main(String[] args) throws IOException
{
    Patient [] patients = new Patient[2];

    int i = 0;

    for (i = 0; i < 2; i++)
    {
        patients[i] = new Patient(null, null, 0); // No need for p now
    }
}

答案 3 :(得分:2)

通过索引访问数组: 请修改你的代码。

public static void main(String[] args) throws IOException
{
    Patient [] patients = new Patient[10];
    Patient p = new Patient(null, null, 0);

    int i = 0;
    for (i = 0; i < 2; i++)
    {
      patients[i] = p;
    }
}

答案 4 :(得分:2)

首先,您需要将数组初始化为特定大小。

Patient [] patients = new Patient[2];

其次,在分配值时需要使用索引。

patients[i] = p;

最后;

public static void main(String[] args) throws IOException
{
    Patient [] patients = new Patient[2];

    for (int i = 0; i < patients.length; i++)
    {
        patients[i] = new Patient(null, null, 0);
    }
}

答案 5 :(得分:2)

首先:

一些修正:

class Patient
{

    public String patientNo;
    public String patientName;
    public int procedureType;

    public Patient(String ptNo, String ptName, int procType)
    {
        this.patientNo =  ptNo;
        this.patientName = ptName;
        this.procedureType = procType;
    }
}

由于您希望患者的独特性与Patient.sth的特性不同,因此是类的属性(对所有实例都是通用的)。

现在数组和插入:

Patient patients[] = new Patient[2];

for (int i = 0; i < patients.length; i++)
{
    patients[i] = new Patient(null, null, 0);
}

但同样不要用相同的对象填充数组。另外不受固定数组大小的限制 - 使用Vector(例如)

关于班级成员/又名静态对象成员的

更新

这两个代码示例完全不同:

class X
{
    public String abc;

    public void someMember()
    {
        this.abc =  ;
    }
}

class X
{

    public static String abc;

    public void someMember()
    {
        X.abc = 
    }
}

你必须区分一个卑鄙的东西和一个类的共同点(即所有实例都可用 - 它们是共同的)。 使用static关键字,您可以声明类成员(它们对于所有实例都是通用的)。您不能将它们与'this'关键字一起使用,该关键字是为第一个示例中的实例成员保留的。

以下是您必须阅读的内容class vs instance members