java - 有没有一种方法可以更新 Arraylist 中的记录而不删除现有记录?

标签 java arraylist record updates

我有一个 arraylist ,其中记录存储为对象。我想知道是否有办法更新数组列表中的记录而不删除现有记录?

例如,我的记录具有名字、姓氏、缩写、ID 等属性。有没有办法更新记录中的名字,而不必同时提供所有其他属性值?

目前我所做的是,当用户给出一个 id 时,我会查找该 id 是否与数组中的任何记录匹配,如果匹配,我将其从数组中删除并让用户从头开始输入所有详细信息。

最佳答案

Arraylist 存储引用并且不复制/创建新对象。如果更改存储的对象引用,它也会反射(reflect)在 arrayList 中。下面是一个示例代码来演示:

package arraylistExample;

import java.util.ArrayList;

/**
 * Class represeting entity to be stored in Arraylist 
 * 
 */
class Person {

private String name;
private int age;
private String address;

public Person(String name, int age, String address) {
    super();
    this.name = name;
    this.age = age;
    this.address = address;
}

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}

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


}

.

/**
 * Public class to run the demo
 *
 */
public class ArraylistObjectModify {

public static void main(String args[]) {

    // Add an arraylist and add elements to it
    ArrayList<Person> personList = new ArrayList<Person>();
    personList.add(new Person("Juned",32,"Bangalore"));
    personList.add(new Person("Ahsan",31,"Delhi"));
    personList.add(new Person("Sniper",1,"Grave"));

    //Print list elements before change
    System.out.println("Arraylist pre objects modification");
    System.out.println("----------------------------------");
    for(Person person:personList) {
        System.out.println(person);
    }

    for(Person person:personList) {
        if(person.getName().equals("Juned")) {
            person.setName("ChangedJuned");
            person.setAddress("Hola-lulu");
        }
    }

    //Print list elements after change
    System.out.println("Arraylist post objects modification");
    System.out.println("----------------------------------");
    for(Person person:personList) {
        System.out.println(person);
    }


}

}

关于java - 有没有一种方法可以更新 Arraylist 中的记录而不删除现有记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16337550/

相关文章:

java - Java Netbeans 程序中的不同结果

java - 从 RealmBase 对象访问 sessionid

java - 循环中的变量对象属性

ios - sizeof() 给出数组参数的错误

java - 将多个 Hashmap 合而为一。 java

javascript - 网络录音,预设: 16000Hz 16bit

具有委托(delegate)属性的 C# 记录

c - 使用 C 和 Windows 从混音器录制声音

java - 获取外汇 :id from label clicked to get its text from controller

java - 在 Android 中使用 CustomMultiPartEntity 取消上传文件