Java hashset与hashmap的重数关系

Java hashset与hashmap的重数关系,java,Java,我对两个散列集合的多重性关系感到困惑 从我在这里的另一个帖子上看到 HashSet是一个集合,例如{1,2,3,4,5} HashMap是一个键->值键到值的映射,例如{a->1,b->2,c->2,d->1} 这看起来像hashset是一个绑定到一组数据的唯一ID,例如12345。这对我来说是一对多的关系 hashMap是一对一关系的1个键对1个值 在谷歌搜索确认我的怀疑之后,我更加困惑了。 从这个帖子上, 它显示了一对多和多对多关系中使用的哈希集, 也有文章显示了这两种方法中使用的hashm

我对两个散列集合的多重性关系感到困惑

从我在这里的另一个帖子上看到

HashSet是一个集合,例如{1,2,3,4,5}

HashMap是一个键->值键到值的映射,例如{a->1,b->2,c->2,d->1}

这看起来像hashset是一个绑定到一组数据的唯一ID,例如12345。这对我来说是一对多的关系

hashMap是一对一关系的1个键对1个值

在谷歌搜索确认我的怀疑之后,我更加困惑了。 从这个帖子上,

它显示了一对多和多对多关系中使用的哈希集, 也有文章显示了这两种方法中使用的hashmap


HashSet和HashMap可以同时用于一对多和多对多关系吗?

谈论它们的实际使用方式,不! 对于关系a->B

然而,当我需要建立“一对多”的关系时,我求助于

 HashMap<A,HashSet<B>>
这样做会在关系的源上强制执行唯一约束。为了避免这种情况,可以使用HashMap对其进行反向映射

 HashMap<B,A>
在多对多关系中,没有一个唯一的密钥可用于访问一对元素。这基本上意味着整个数据集只是一个数据对列表

 List<{A,HashSet<B>}> 
其中WrapperObject具有属性标识符HashSet。 在这里,标识符不一定是唯一的

如果您使用的是@ManyToMany注释,Spring/Ebean会在内部使用它,您不必担心如何表示映射,因为它在本文的示例中是可见的。您需要从单个实例的角度设置映射


整个实例数组将自动为您处理。

您好,有几个问题,1对于混合使用两个哈希集合的一对多关系,这与仅使用哈希集相比如何?因为输入仍然是一个唯一标识符,而输出仍然是一个集合,不能有重复项。2对于使用包装器对象列表的多对多,在我看来它与hashmap一样。因为它是一个键和值的列表,听起来像一个hashmap