6

オブジェクトの人をArrayListに格納しようとしています。

を持っていますArrayList<String> customer = new ArrayList<String>();

オブジェクト「person」には、name(String)とpNr(long)の2つの変数があります。私は単にそれを追加しようとしました:customer.add(person)しかし、それはうまくいかないようです。

明確にするために:私は変数を個別に保存したくありません。オブジェクトパーソン全体をArrayListに格納したいと思います。

私は単にこの問題に取り組む方法を理解することができません、あるいはそれができるとしても。

誰かが私を正しい方向に向けることができますか?

4

9 に答える 9

19

の代わりにPersonオブジェクトListを受け入れるように変更します。String

List<Person> customer = new ArrayList<Person>();
Person p = .....;
customer.add(person);
于 2013-02-01T14:16:05.000 に答える
13

人のクラス

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();
于 2013-02-01T14:26:23.560 に答える
3

List別のジェネリック型でを使用する必要があります。List現在で指定されているジェネリック型は、その型のオブジェクトのみをリストStringに追加できるようにするためです。String

List<Person> customer = new ArrayList<Person>();

Listまた、などの別の実装に切り替える必要が生じた場合に備えて、インターフェイスを使用することをお勧めしますLinkedList

于 2013-02-01T14:17:28.553 に答える
3

これを見てください

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;
    }

}
于 2013-02-01T14:25:47.427 に答える
2
ArrayList<String> customer = new ArrayList<String>();

このようにして、arrayListcustomerが型Stringのみを受け入れるように定義しました。

ArrayList<Person> customer = new ArrayList<Person>(); 

Personこれは、タイプ(およびサブタイプのPerson)のオブジェクトのみを受け入れます。

于 2013-02-01T14:17:58.820 に答える
1

または、を主張する場合は、PersonクラスにメソッドをArrayList<String> customer実装します。toString()

@Override
public String toString() {
    return "Person[name=" + name + ",pNr=" + pNr +"]";
}

次に、次を使用できます。

customer.add(person.toString())
于 2013-02-01T14:18:10.187 に答える
1

クラス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>();
于 2013-02-01T14:21:23.043 に答える
0

その場合は使用する必要がありますArrayList<Person>

于 2013-02-01T14:16:15.380 に答える
0

配列リストにオブジェクトを追加する場合は、リストタイプでそのオブジェクトを参照する必要があります。IE:ArrayList<Person> customer = new ArrayList<Person>();

于 2013-02-01T14:18:01.797 に答える