0

我有4节课。一个持有有关客户的信息。另一个关于订单。还有2个类扮演注册中心的角色,一个是客户注册中心,一个是订单注册中心。

订单注册表有一个哈希图,如下所示:

private HashMap<Integer, Order> orderRegistryMap = new HashMap<>();

客户登记也是如此。

private HashMap<Integer, Customer> customersRegistryMap = new HashMap<>();

类 orders 有一个 int orderid。类客户有一个 int customerid。我通过两个注册表添加了演示数据(假设 1 个客户的 customerid 为 100,一个订单的 orderid 为 500。

我编写了简单的方法来通过 orderid 搜索订单或获取所有订单的哈希图。我还编写了简单的方法来通过 customerid 搜索客户或获取所有客户的哈希图。

我需要帮助编写一种方法,该方法可以通过 orderid 找到客户并获取与该 customerid 关联的所有订单。

有任何想法吗?

4

1 回答 1

1

处理这种关系的典型方法(这似乎是一对多的关系)是将客户 ID 存储在订单本身中。这样做是因为每个订单只有一个客户。如果你不这样做,你别无选择,只能遍历数组。

编辑:对于反向关系 Customer->Orders 我会使用反向注册表,例如:

HashMap<Integer/*customer_id*/, 
        List<Integer> /*list of orders for the customer*/> customer_orders;

并与订单和客户保持同步。这将尽可能快地执行,我认为你不能使用更少的内存来实现你想要的。

于 2013-01-11T15:03:29.750 回答