首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java中是否存在使用泛型(域模型,而不是持久层)的多对多集合?

Java中是否存在使用泛型(域模型,而不是持久层)的多对多集合?
EN

Stack Overflow用户
提问于 2009-01-23 17:51:13
回答 2查看 2.9K关注 0票数 19

我似乎在谷歌中使用了错误的搜索词...

我已经为多对多关联编写了一个泛型类,但我猜这已经完成了。它很可能存在于比我自己的实现更好的实现中。这是我第一次尝试编写泛型类。

为了更好地了解我正在寻找的内容,我提供了一些我自己的代码片段:

我用两个hashmap来支持它:

代码语言:javascript
复制
private final Map<T, List<S>> ssForTs = new HashMap<T, List<S>>();
private final Map<S, List<T>> tsForSs = new HashMap<S, List<T>>();

下面是实例化:

代码语言:javascript
复制
new ManyToManyAssociations<Integer, Integer>();

以下是一些可用的方法:

  • public void addAssociation(T t,S s)
  • public void removeAssociation(T t,S s)
  • public void List getTsForSs(S s)
  • public List getSsForTs(T T)

<

  • >F215

这些方法的名称非常糟糕……我很抱歉。

基本用法是:我可以很容易地找到T的所有S,反之亦然。

你能把这个链接发布到一个已经包含这个功能的精美的库中吗?

EN

回答 2

Stack Overflow用户

发布于 2009-01-23 19:42:00

到目前为止,这个问题并不像我想象的那么微不足道。我脑海中浮现的两个Java Collections扩展是duffymo提到的Google one和Apache Commons Collections。两者都没有多对多映射。在谷歌的术语中,它应该是一个BiMultiMap;在Apache的术语中,它应该是一个BidiMultiMapMultiBidiMap

票数 4
EN

Stack Overflow用户

发布于 2009-01-23 17:53:30

看起来Apache Commons Multimap可能会有用。

编辑:,除了它是一对多,而不是多对多。然而,用它来代替你的Map<T, List<S>>Map<S, List<T>>,或者作为一个参考,可能还是很方便的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/473862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档