【发布时间】:2011-04-27 06:05:10
【问题描述】:
我想在 ArrayList 中同时添加 String 和 Integer 类型的值。
例如,我有一个数组列表,我想在单个 arralist 中添加人员姓名和相应人员的年龄。
我怎样才能做到这一点。我怎样才能得到这个?实际上,我正在从数据库中检索数据,并希望将所有员工姓名和年龄保存在一个数组列表中。比如多维数组列表。
【问题讨论】:
-
哇,很多答案都在说同样的话。
标签: java
我想在 ArrayList 中同时添加 String 和 Integer 类型的值。
例如,我有一个数组列表,我想在单个 arralist 中添加人员姓名和相应人员的年龄。
我怎样才能做到这一点。我怎样才能得到这个?实际上,我正在从数据库中检索数据,并希望将所有员工姓名和年龄保存在一个数组列表中。比如多维数组列表。
【问题讨论】:
标签: java
创建一个包含年龄和姓名的人员类,然后创建一个该类型的 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"));
【讨论】:
你应该创建一个类来代表一个人,然后将那些添加到一个列表中。在列表中混合对象类型是一种不好的做法。你可以从一个简单的 person 类开始:
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));
【讨论】:
你可以创建一个 Person 类
class Person{
String name;
int age;
//Add the getteres and setters
}
然后如下声明一个arrayList。
ArrayList<Person> p = new ArrayList<Person>();
然后为每个人创建一个人对象并填充arrayList,如下所示。
p.add(personObj);
【讨论】:
您可以创建一个ArrayList<Object>。 Integer 和 String 都是 Object 的子类,因此都可以添加到 ArrayList<Object>。
也就是说,在我看来你不太可能真的想要这样做。 ArrayList 是一个列表。如果您在列表中存储的东西在某种意义上不是同一类东西,这通常是一种难闻的气味(即:表明设计不佳)。
您所描述的元素之间的对应关系表明您实际上需要一个员工对象列表,其中每个员工对象都有一个姓名和一个年龄。
如果名称是唯一的,另一种可能性是使用Map。如果您关心维护秩序,可以使用LinkedHashMap。
【讨论】:
class Employee{
int age;
String name;
//+acessor method
}
Lit<Employee> list = new ArrayList<Employee>();
【讨论】:
为确保编译器不会报错,请使用泛型指定您想要将对象添加到 ArrayList;这将允许您向其中添加 Integer 和 String 类型:
ArrayList<Object> myList = new ArrayList<Object>();
然后您可以将任一类型的对象添加到其中。
但是,Java 是强类型的,因此需要将两种类型添加到一个 ArrayList 中对我来说是一个设计问题。
【讨论】: