我一直在研究如何将元素添加到数组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);
}
}
我明白我错过了显而易见的事情,只是在耗尽其他资源后才来到这里。
答案 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