我有4节课。 一个人掌握有关客户的信息。另一个关于订单。 另外2个类扮演注册表角色,一个是客户注册表,另一个是订单注册表。
Orders注册表有一个如下所示的hashmap:
private HashMap<Integer, Order> orderRegistryMap = new HashMap<>();
客户注册表同样如此。
private HashMap<Integer, Customer> customersRegistryMap = new HashMap<>();
班级订单有一个int orderid。类客户有一个int customerid。 我通过两个注册表添加了演示数据(假设1个客户使用customerid 100,一个订单使用orderid 500.
我编写了简单的方法来通过orderid搜索订单或获取所有订单的哈希映射。 我还编写了一些简单的方法来通过customerid搜索客户或获取所有客户的哈希映射。
我需要帮助编写一个方法,该方法可以通过orderid查找客户并获取与该customerid相关联的所有订单。
有什么想法吗?
答案 0 :(得分:1)
处理此类关系的典型方法(这似乎是一对多的实现)是将客户ID存储在订单本身中。这样做是因为每个订单都有一个且只有一个客户。如果你不这样做,你别无选择,只能遍历数组。
编辑:对于反向关系Customer-&gt;订单我会使用反向注册表,如:
HashMap<Integer/*customer_id*/,
List<Integer> /*list of orders for the customer*/> customer_orders;
并与订单和客户保持同步。这将尽可能快地执行,我不认为你可以使用更少的内存来实现你想要的。