简体   繁体   中英

Create list with unique id in Java and manipulate it

I want to create a programm that creates a list that looks like this

ID: 1
Name: Example
Surname: Example
email: example

//New list

ID: 2
Name: Example
Surname: Example
email: example

and then when i want to change something (like Name: ) i'd like to change it by id, so it can only be changed inside the list with ID: 2

You should use a HashMap .

Create a class (let's class it YourClass ) that contains ID, name, surname and email instance variables.

Then create a HashMap where the key is the identifier and the value is YourClass :

Map<Integer,YourClass> map = new HashMap<>();
map.put(objectOfYourClassWithID1.getID(),objectOfYourClassWithID1);
map.put(objectOfYourClassWithID2.getID(),objectOfYourClassWithID2);
if (map.containsKey(2)) {
    map.get(2).setSomeProperty(newValue); // this will only change the object whose ID is 2
}

you can create class like this

public class Record{
    private int id;
    private String name;
    private String Surname;
    private String email;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurname() {
        return Surname;
    }

    public void setSurname(String surname) {
        Surname = surname;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

and then use it like this:

    Record record1 = new Record();
    record1.setId(1);
    record1.setName("example");
    record1.setSurname("example");
    record1.setEmail("example");

    Record record2 = new Record();
    record2.setId(2);
    record2.setName("example");
    record2.setSurname("example");
    record2.setEmail("example");

    Map<Integer,Record> recordMap = new HashMap<Integer, Record>();
    recordMap.put(record1.getId(),record1);
    recordMap.put(record2.getId(),record2);]

    recordMap.get(2).getName();//example
    recordMap.get(2).setName("ebi");
    recordMap.get(2).getName();//ebi
import java.util.ArrayList;
import java.util.List;

public class Person {

private int id;
private String name;
private String Surname;
private String email;

public Person(int id, String name, String surname, String email) {
    super();
    this.id = id;
    this.name = name;
    Surname = surname;
    this.email = email;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getSurname() {
    return Surname;
}

public void setSurname(String surname) {
    Surname = surname;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public static void main(String[] args) {

    List<Person> list = new ArrayList<Person>();
    list.add(new Person(1, "example", "example", "example"));
    list.add(new Person(2, "example", "example", "example"));
  }

 }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM