【发布时间】:2016-03-31 07:38:23
【问题描述】:
我正在通过构建一个简单的目录来练习 java。我有 4 节课。它们是:
人
地址
联系方式
testClass
我已经完成了这个系统的创建,它可以按照我想要的方式工作。我通过为 Person、Address 和 Contact 创建 3 个不同的数组来做到这一点。要将人员、地址和联系人链接在一起,我将它们放在具有相同索引号的相应数组中。 (不是字面上将它们联系在一起,只是一种在编辑人员时知道要访问哪个地址或联系人的方法。
但是现在,我想优化它。我想创建一个 HashMap 来保存一个人,其中包含地址和联系人。请参阅下面的代码以获取更多信息。
Person.class
public class Person {
private long Id;
private firtName;
private Address address;
private Contact contact;
//some setter and getter methods
public Person(Address address, Contact contact) {
this.address = address;
this.contact = contact;
}
}
地址.class
public class Address {
private String street;
private String city;
private String province;
//some setter and getter methods
}
联系人.class
public class Contact {
private long Phone;
private String Email;
//some setter and getter methods
}
testClass.class
public class testClass {
public static void main(String[] args) {
HashMap<Integer, Person> person = new HashMap<Integer, Person>();
person.put(1, new Person(new Address(), new Contact)));
person.get(1).setStreet("place");
}
}
我的问题是,在 testClass 中的这行代码
person.get(1).setStreet("place");
有没有一种方法可以直接访问/编辑人员的地址或联系人,而无需创建单独的数组或方法?
【问题讨论】:
-
我不明白这里有什么问题。什么是“直接访问”,你说的是什么数组/方法?
-
拥有地址和联系人的getter方法并修改它们。
-
对您的命名稍作补充。联系人可能会被误认为是人,而您的意思是联系信息。并且将一组人称为单数也令人困惑。阅读为 indexedPeople 或 peopleMap 或至少只是 people 会更容易。
标签: java hashmap composition