如何从HashMap内部的对象访问ArrayList?爪哇

时间:2018-10-31 14:18:38

标签: java arraylist hashmap

我已经在HashMap中存储了一个带有一些变量和ArrayList的对象,我想知道如何在该列表中添加或删除元素。

    class Person{
        String name;
        int age;
        ArrayList<String> amigos = new ArrayList<>();

        public Person(String name, int age){
           this.name = name;
           this.age = age;
           amigos.add("Ana");
           amigos.add("Pedro");}
        }

    public class TestMap {
        public static void main(String[] args){
            Map<String, Person> mapa = new HashMap<>();
            mapa.put("João", new Person("João", 24));
        }
    }

我想在此列表中添加另一个人,例如John,但我不知道如何访问该列表。

明确要求我将对象存储在HashMap中,以便无法更改。

1 个答案:

答案 0 :(得分:2)

您应该声明变量private并通过getter / setter访问它们。

class Person {
    private String name;
    private int age;
    private List<String> amigos = new ArrayList<>();

    public ArrayList<String> getAmigos () {
        return amigos;
    }

    public void addAmigo(String amigo) {
        amigos.add(amigo);
   }
}

要使用键访问地图中的Person

mapa.get("João").addAmigo("amigoName");

您还应该考虑使用amigos List<Person>代替List<String>,这取决于您的用例。