我想在ArrayList中添加String和Integer类型的值。
例如,我有一个数组列表,其中我想在一个集会中添加相应人的姓名和年龄。
我怎样才能做到这一点。我怎么能得到这个?实际上我正在从数据库中检索数据,并希望将所有员工姓名和年龄保存在单个数组列表中。像多维数组列表一样。
答案 0 :(得分:7)
创建一个具有年龄和名称的人员类,然后创建该类型的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"));
答案 1 :(得分:6)
您应该创建一个类来表示一个人,然后将那些添加到列表中。混合列表中的对象类型是一种不好的做法。你可以从一个简单的人类开始:
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));
答案 2 :(得分:1)
答案 3 :(得分:1)
你可以制作一个人类
class Person{
String name;
int age;
//Add the getteres and setters
}
然后按如下方式声明一个arrayList。
ArrayList<Person> p = new ArrayList<Person>();
然后为每个人创建一个person对象并按如下方式填充arrayList。
p.add(personObj);
答案 4 :(得分:1)
您可以创建ArrayList<Object>
。 Integer
和String
都是Object
的子类,因此两者都可以添加到ArrayList<Object>
。
那就是说,我真的不太想你这样做。 ArrayList
是一个列表。如果你把东西存放在某种意义上不是同一种东西的列表中,那通常是一种难闻的气味(即:设计不佳的迹象)。
在您描述的元素之间建立对应关系表明您实际上需要一个员工对象列表,其中每个员工对象都有一个名称和年龄。
如果名称是唯一的,则另一种可能性是使用Map
。如果您关心保留订单,可以使用LinkedHashMap
。
答案 5 :(得分:0)
class Employee{
int age;
String name;
//+acessor method
}
Lit<Employee> list = new ArrayList<Employee>();
答案 6 :(得分:0)
要确保编译器不会抱怨,请使用Generics指定要将对象添加到ArrayList;这将允许您向其添加Integer和String两种类型:
ArrayList<Object> myList = new ArrayList<Object>();
然后你可以添加任何一种类型的对象。
但是,由于某种原因,Java是强类型的,因此需要在一个ArrayList中添加两种类型会给我带来设计问题。