当前位置: 首页 > 知识库问答 >
问题:

java中的关联和哈希映射

鞠边浩
2023-03-14

我有4节课。其中一个保存有关客户的信息。另一个是关于订单的。另外两个类扮演注册表角色,一个是客户注册表,另一个是订单注册表。

Orders registry有一个哈希映射,如下所示:

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

客户注册也是如此。

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

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

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

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

有什么想法吗?

共有1个答案

鲜于岳
2023-03-14

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

编辑:对于反向关系客户-

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

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

 类似资料:
  • 简介 本章中,我会讲解用于表示数据关联的关联表和哈希表。关联的数据是由键和值组成的序对,值由键唯一确定的。表1显示了书和作者构成的配对。书籍可以确定作者,反之由作者确定书籍则不可,这是因为一个作者可能会写很多本书。表1中,由于P. Graham和L.Carroll分别写了两本书,因此他们的书无法被作者的名字唯一确定。 表1:作者和书 Author Book P. Graham On Lisp P.

  • 本文向大家介绍Java中并发哈希映射和同步哈希映射之间的区别,包括了Java中并发哈希映射和同步哈希映射之间的区别的使用技巧和注意事项,需要的朋友参考一下 并发Hashmap是jdk1.5中引入的类。并发哈希映射仅在添加或更新映射时在称为片段的存储桶级别应用锁。因此,并发哈希映射允许对映射进行并发读写操作。  同步hashmap(Collection.syncronizedHashMap())是C

  • > 阅读算法书,需要掌握哈希表的概念。他们写了关于使用单独链接的散列和使用线性探测的散列。我猜Java的HashMap是一个哈希表,因此我想知道HashMaps使用什么机制(链接或探测)? 我需要实现最简单的HashMap与get,put,删除。你能给我指出好的材料来阅读吗? 当用于映射的惟一键是自定义对象时,我们需要在相应的类型中实现hashCode()函数。我做得对吗?或者什么时候需要hash

  • 哈希表的生成: 一个关联数组不通过下标来访问,而是通过主键(key)访问.这样的数组有时被叫作哈希(hash).将一对对的元素用逗号分隔开,并用大括号({})括起来,这样就组成了一个哈希表.你用一个关键字在哈希表里进行搜索,就像你在数组里用索引来提取数据一样. 例如: a={" Allex"=>2000," 帆布背包 "=>2003} 在这个例子中," Allex" 和 " 帆布背包 " 是主键(

  • 一、数组变量的限制 在前面讲的数组变量中,可以通过下标访问其中的元素。例如,下列语句访问数组 @array 的第三个元素: $scalar = $array[2]; 虽然数组很有用,但它们有一个显著缺陷,即很难记住哪个元素存贮的什么内容。假如我们来写一个程序计算某文件中首字母大写的单词出现的次数,用数组来实现就比较困难,程序代码如下: 1 : #!/usr/local/bin/perl 2 : 3

  • 我不太熟悉Java流收集器框架,我想解决现实世界中的问题,并想使用流。 下面是实际问题的简化假设场景。 我有一个接口,它的实现返回一个