0

我一直在研究如何将元素添加到数组的问题如何将项目动态添加到 Java 数组?.

我不明白如何添加类类型的对象,而不是像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);
        }
    }

我知道我错过了明显的东西,只有在用尽其他资源后才来这里。

4

6 回答 6

4

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

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);
}
于 2013-11-07T10:59:26.210 回答
3

您需要使用索引访问数组

patients[i] = p;

但在此之前,您还需要对其进行初始化。

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

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

List<Patient> patients = new ArrayList<>();
patients.add(p);
于 2013-11-07T10:54:25.357 回答
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
    }
}
于 2013-11-07T10:55:29.137 回答
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;
    }
}
于 2013-11-07T10:58:58.400 回答
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);
    }
}
于 2013-11-07T11:00:17.243 回答
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 关键字,您可以声明类成员(它们将是所有实例的通用 foa)。您不能将它们与为第一个示例中的实例成员保留的“this”关键字一起使用。

这是您必须阅读的类与实例成员的内容

于 2013-11-07T11:06:55.323 回答