我一直想知道如何在Java中创建可以容纳不同类型(整数+字符串)的arraylist
并且一些字符串变量将来自不同的类
我的变量是
day: string, time: int, section: Sections(string), doctor: Doctors(string), patient: Patients(string), AppointmentNo: int
答案 0 :(得分:0)
首先,您必须创建自己的类以容纳诸如String
和int
之类的数据类型。您可以这样做:
public class MyCustomItems{
private String doctors;
private String patient;
private int appointmentNo;
public MyCustomItems(String doctors, String patient, int num) {
this.doctors = doctors;
this.patient= patient;
this.appointmentNo = num
}
public String getDoctors() {
return doctors;
}
public void setDoctors(String d) {
this.doctors= d;
}
public void setPatient(String p) {
this.patient= p;
}
public void setNum(int n) {
this.num= n;
}
public String getPatient() {
return patient;
}
public String getAppointment() {
return appointmentNo;
}
}
然后,您将必须创建一个ArrayList ,并且 ArrayList类型将是您刚创建的类</ strong>。 它应该看起来像这样:
ArrayList<MyCustomItem> arrayList = new ArrayList<>();
arrayList.add(new MyCustomItem("Doctor 1", "Patient 1", 1));
向arrayList
添加新值时,必须使用new MyCustomItem(string, string, int)
来传递这些值,因为在MyCustomItem
类中,构造函数需要两个String和一个诠释现在,arrayList
中的每个位置将保存一个MyCustomItem
类的对象,这意味着每个位置将不仅包含一个int或一个String,而且将包含2个String和一个int。
这就是您要执行的操作。我希望这能回答您的问题。
答案 1 :(得分:0)
使用您在问题中指定的字段创建课程:
public class Appointment {
String day;
int time;
String section;
String doctor;
String patient;
int appointmentNo;
public Appointment() {
}
}
然后创建带有约会对象的数组列表:
public static void main(String[] args) {
List<Appointment> appointments = new ArrayList<>();
appointments.add(new Appointment());
}
答案 2 :(得分:0)
这不是正确的方法,但是您可以执行以下操作
ArrayList<Object> objects = new ArrayList<>();
objects.add(1);
objects.add("asd");
更好的方法是使用具有所需Strings和int值的属性创建其他类。然后使用该类的类型创建一个数组,然后将这些对象添加到该数组中。
答案 3 :(得分:0)
您误解了数组的用途。 数组是一种数据结构,其中包含特定数据类型的元素的固定大小*集合。(link)
比方说,您已经完成了在数组中存储string
,int
和object
的工作。
const foo = [
"Jan 1st, 1970",
1542824996,
{ name: "Foo" },
]
到目前为止,可能还不错,因为您可以说出这些数据之间的关系,但是如果添加更多的数据呢?
const bar = [
"Jan 1st, 1970",
1542824996,
{ name: "Foo" },
"Jan 2nd, 1970",
1542824000,
{ ... }
]
或更糟糕的是,如果您有这个:
const bar = [
"Jan 1st, 1970",
"Jan 2nd, 1970",
1542824996,
1542824000,
{ name: "Foo" },
{ ... }
]
只有2个条目,您的数据结构失去了其用途(数据的组织)。这就是为什么我们使用objects
并将相似的对象存储在数组中的原因。像这样:
// FooBar Class Declaration
class FooBar {
public date;
public time;
public options;
constructor(date: string, time: int, options: object) {
this.date = date;
this.time = time;
this.options = options;
}
}
// Constructing the `FooBar` object
const fB1 = new FooBar("Jan 1st, 1970", 1542824996, { name: "Foo" });
const fB2 = new FooBar("Jan 2nd, 1970", 1542824000, { ... });
// Storing the objects in an array
const fooBarContainer = [ fB1, fB2 ];
现在很清楚对象内部的关系是什么,您可以获得排序,过滤,映射等所有数组的好处。
答案::您应该首先以逻辑上相关的结构组织数据,然后将其存储在数组中。