我有四节课。
一个拥有有关客户的信息。另一个关于订单。
另外2个类在注册中扮演角色,一个是客户注册,另一个是订单注册。

订单注册表具有如下所示的哈希图:

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


客户注册表也是如此。

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


类订单具有一个int orderid。类客户具有int客户ID。
我在两个注册表中都添加了演示数据(假设1个客户的客户ID为100,一个订单的订单ID为500。

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

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

有任何想法吗?

最佳答案

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

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

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


并使其与订单和客户保持同步。这将以最快的速度执行,我认为您无法使用更少的内存来实现所需的功能。

关于java - Java中的关联和哈希图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14280712/

10-12 00:36