用于在java中存储对象的数据集
假设我要存储多个对象:用于在java中存储对象的数据集,java,android,object,data-structures,Java,Android,Object,Data Structures,假设我要存储多个对象: Person ------------ Employee ------------ Sales Engineer | | Customer Field Engineer So:人员、客户、员工、销售工程师、现场工程师 我需要跟踪所有这些……存储它们的最佳方式是什么?在ArrayList中?自定义阵列列表 它们的存储方式也可能影响将来的扩展—将来,这些对象可能由SQL Server中的字段生成。(此
Person ------------ Employee ------------ Sales Engineer
| |
Customer Field Engineer
So:人员、客户、员工、销售工程师、现场工程师
我需要跟踪所有这些……存储它们的最佳方式是什么?在ArrayList中?自定义阵列列表
它们的存储方式也可能影响将来的扩展—将来,这些对象可能由SQL Server中的字段生成。(此外,这是一款Android应用程序,因此这可能是一个因素。)如果您不确定将来需要如何访问对象,您可能会发现a提供了很大程度的灵活性 由于它使用键值对,您可以快速检索特定对象,.keys()方法提供了一种方法,可以在必要时迭代遍历整个集合。您将需要一个
列表。您的图表建议继承,因此您希望拥有一个超类集合,并让多态性完成其余工作
您的代码可以执行以下操作:
List<Person> people = new ArrayList<Person>();
// Any class that extends person can be added
people.add(new Customer());
people.add(new FieldEngineer());
for (Person person : people) {
System.out.println(person);
}
使用一个异构列表——在java中,您可以使用这样的泛型list
我假设所有对象都是集合的一部分
理想情况下,员工应该有一个get/setCustomer,员工应该有一个get/SETFIELD工程师,然后结构应该类似于:
class CustomerRelationship{
public Employee employee;
public SalesEngineer salesEngineer;
public Person customer;
}
如果对象不是集合的一部分,而是对象列表,那么您可能需要重新考虑您的设计。或者您可以使用instanceof everywhere(坏)
class CustomerRelationship{
public Employee employee;
public SalesEngineer salesEngineer;
public Person customer;
}