我有四节课。
一个拥有有关客户的信息。另一个关于订单。
另外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/