java中的关联和哈希映射

时间:2013-01-11 14:58:09

标签: java hashmap

我有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相关联的所有订单。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

编辑:对于反向关系Customer-&gt;订单我会使用反向注册表,如:

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

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