我正在尝试将对象人存储在 ArrayList 中。
我有一个ArrayList<String> customer = new ArrayList<String>();
对象“person”有两个变量:name(字符串)和 pNr(long)。我试图简单地添加它:customer.add(person)
但这似乎不起作用。
澄清一下:我不想单独存储变量。我想将整个对象人存储在 ArrayList 中。
我根本不知道如何解决这个问题,或者即使它可以完成。
有人可以指出我正确的方向吗?
我正在尝试将对象人存储在 ArrayList 中。
我有一个ArrayList<String> customer = new ArrayList<String>();
对象“person”有两个变量:name(字符串)和 pNr(long)。我试图简单地添加它:customer.add(person)
但这似乎不起作用。
澄清一下:我不想单独存储变量。我想将整个对象人存储在 ArrayList 中。
我根本不知道如何解决这个问题,或者即使它可以完成。
有人可以指出我正确的方向吗?
更改您的List
,使其接受Person 对象而不是String
.
List<Person> customer = new ArrayList<Person>();
Person p = .....;
customer.add(person);
人员类
public class Person {
String name;
long pNr;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getPNR() {
return pNr;
}
public void setPNR(long pNr) {
this.pNr = pNr;
}
}
创建人员对象
Person person = new Person();
person.setName("Name");
person.setPNR(pNr);
添加到 ArrayList
ArrayList<Person> personList = new ArrayList<Person>();
personList.add(person);
检索数据
String selectedName = personList.get(i).getName();
您需要将 aList
与不同的泛型类型一起使用。由于当前指定的泛型类型List
是String
它只允许您将类型的对象添加String
到列表中。
List<Person> customer = new ArrayList<Person>();
我还建议使用该List
接口,以防需要切换到不同的实现,例如LinkedList
.
看这个
import java.util.ArrayList;
import java.util.List;
public class Tester4 {
public static void main(String args[]) {
List<Person> persons = new ArrayList<Person>();
Person person = new Person();
person.setName("Tester");
person.setPersonNr(1245L);
persons.add(person);
person = new Person();
person.setName("Tester 2");
person.setPersonNr(1299L);
persons.add(person);
}
}
class Person {
private String name;
private Long personNr;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getPersonNr() {
return personNr;
}
public void setPersonNr(Long personNr) {
this.personNr = personNr;
}
}
ArrayList<String> customer = new ArrayList<String>();
通过这种方式,您定义了 arrayList只customer
接受类型String
。
ArrayList<Person> customer = new ArrayList<Person>();
这将只接受具有Person
类型(和 Person 的子类型)的对象。
定义一个类 Person
public class Person(){
private String name;
private long pNr;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public long getPNR(){
return pNr;
}
public void setPNR(long pNr){
this.pNr = pNr;
}
}
然后你使用:
ArrayList<Person> customer = new ArrayList<Person>();
或者,如果你坚持,那么在你的 Person 类中ArrayList<String> customer
实现一个方法。toString()
@Override
public String toString() {
return "Person[name=" + name + ",pNr=" + pNr +"]";
}
然后你可以使用:
customer.add(person.toString())
在这种情况下,您需要使用ArrayList<Person>
如果要将对象添加到数组列表中,则必须在列表类型中引用该对象。IE:ArrayList<Person> customer = new ArrayList<Person>();