[英]Use of ArrayList in Java to store Name and Age
我想在 ArrayList 中添加 String 和 Integer 类型的值。
例如,我有一个数组列表,我想在单个 arralist 中添加人员的姓名和相应人员的年龄。
我怎样才能做到这一点。 我怎样才能得到这个? 实际上,我正在从数据库中检索数据,并希望将所有员工姓名和年龄保存在一个数组列表中。 像多维数组列表。
使用年龄和姓名创建一个人 class,然后创建该类型的 ArrayList。
class Person {
private String mName;
private int mAge;
public Person(int age, String name) {
mName = name;
mAge = age;
}
public String getName() {
return mName;
}
etc ........
}
ArrayList<Person> arr = new ArrayList<Person>();
arr.add(new Person(10, "joe"));
您应该创建一个 class 来代表一个人,然后将它们添加到列表中。 在列表中混合对象类型是一种不好的做法。 你可以从一个简单的人 class 开始:
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
然后创建一个这样的列表:
List<Person> people = new ArrayList<Person>();
并将您从数据库中读取的人员添加到列表中:
people.add(new Person(name, age));
你可以做一个人 Class
class Person{
String name;
int age;
//Add the getteres and setters
}
然后如下声明一个 arrayList。
ArrayList<Person> p = new ArrayList<Person>();
然后为每个人创建一个人 object 并按如下方式填充 arrayList。
p.add(personObj);
您可以创建一个ArrayList<Object>
。 Integer
和String
都是Object
的子类,因此都可以添加到ArrayList<Object>
中。
也就是说,在我看来你不太可能真的想要这样做。 ArrayList
是一个列表。 如果您在列表中存储的东西在某种意义上不是同一种东西,这通常是一种难闻的气味(即:不良设计的标志)。
正如您所描述的那样,元素之间的对应关系表明您实际上想要一个员工对象列表,其中每个员工 object 都有一个名称和一个年龄。
如果名称是唯一的,另一种可能性是使用Map
。 如果您关心保留顺序,可以使用LinkedHashMap
。
class Employee{
int age;
String name;
//+acessor method
}
Lit<Employee> list = new ArrayList<Employee>();
为确保编译器不会抱怨,请使用 Generics 指定您想要将对象添加到 ArrayList; 这将允许您向其中添加 Integer 和 String 两种类型:
ArrayList<Object> myList = new ArrayList<Object>();
然后,您可以将任一类型的对象添加到其中。
但是,Java 是强类型的,因此需要在一个 ArrayList 中添加两种类型对我来说是一个设计问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.