0

レコードがオブジェクトとして保存される arraylist があります。既存のレコードを削除せずに配列リスト内のレコードを更新する方法があるかどうか知りたいですか?

たとえば、私のレコードには名、姓、イニシャル、ID などの属性があります。他のすべての属性値も指定する代わりに、レコードの名を更新する方法はありますか?

現在私が行っているのは、ユーザーがIDを指定したときです。IDが配列内のレコードと一致するかどうかを確認し、一致する場合は配列から削除し、ユーザーに最初からすべての詳細を入力させます。

4

6 に答える 6

0

オブジェクトには、直接アクセスするか、set/get メソッドを介して属性を設定/取得する方法が含まれている必要があります。

例えば

ArrayList<YourObject> Records = new ArrayList<YourObject>();

//Loop through your ArrayList and check if their ID attribute matches
for(YourObject record : Records) {
    if(record.id == userGivenID) {
        //prompt the user to change whichever values you want 
        Scanner s = new Scanner(System.in);
        System.out.print("Change the name of this record > ");
        record.setName(s.nextLine());
        ...etc...
    }
}

次のような get/set メソッドを使用することをお勧めします。

record.setName("Bob");
String name = record.getName();
于 2013-05-02T12:10:06.680 に答える
0
// Check this example

public class Test {
    public static void main(String[] args){
        List<Student> al = new ArrayList<Student>();

        Student s1 = new Student(1, "John", "Nash", "N");
        Student s2 = new Student(2, "John", "Slash", "s");

        al.add(s1);
        al.add(s2);


        for(Student s:al){
            if(s.getId() == 2){
                s.setfNmae("Nks");
                al.add(al.indexOf(s), s);
            }
           s.display();
        }

    }
}

class Student{
    private int id;
    private String fName;
    private String lName;
    private String initial;

    Student(int id, String fName, String lName, String initial){
        this.id = id;
        this.fName = fName;
        this.lName = lName;
        this.initial = initial;
    }
    void display(){
        System.out.println(id);
        System.out.println(fName);
        System.out.println(lName);
        System.out.println(initial);
    }

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * @return the fNmae
     */
    public String getfNmae() {
        return fName;
    }

    /**
     * @param fNmae the fNmae to set
     */
    public void setfNmae(String fNmae) {
        this.fName = fNmae;
    }

    /**
     * @return the lName
     */
    public String getlName() {
        return lName;
    }

    /**
     * @param lName the lName to set
     */
    public void setlName(String lName) {
        this.lName = lName;
    }

    /**
     * @return the initial
     */
    public String getInitial() {
        return initial;
    }

    /**
     * @param initial the initial to set
     */
    public void setInitial(String initial) {
        this.initial = initial;
    }
}
于 2013-05-02T12:25:35.877 に答える