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

Java中是否有使用泛型(域模型,而不是持久层)的多对多集合?,java,generics,data-structures,Java,Generics,Data Structures,我似乎在谷歌中使用了错误的搜索词 我已经为多对多关联编写了一个泛型类,但我猜这已经完成了。它很可能存在于比我自己的实现更好的实现中。这是我第一次尝试编写泛型类 为了更好地了解我在寻找什么,我加入了我自己的一些片段: 我已经用2个哈希映射来支持它: private final Map<T, List<S>> ssForTs = new HashMap<T, List<S>>(); private final Map<S, List<T&g

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

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

为了更好地了解我在寻找什么,我加入了我自己的一些片段:

我已经用2个哈希映射来支持它:

private final Map<T, List<S>> ssForTs = new HashMap<T, List<S>>();
private final Map<S, List<T>> tsForSs = new HashMap<S, List<T>>();
private final Map ssForTs=new HashMap();
私有最终映射tsForSs=新HashMap();
以下是实例:

new ManyToManyAssociations<Integer, Integer>();
newmanytomanyassociations();
一些可用的方法:

  • 公共无效地址关联(T,S)
  • 公共无效解除关联(T、T、S)
  • 公共列表getListOfTs()
  • 公共列表getListOfSs()
  • 公共列表GettsFors(S)
  • 公共列表getSsForTs(T)
方法的名称很差。。。我道歉

基本用法是: 我可以很容易地找到T的所有S和相反的S

您能否将链接发布到已包含此功能的精良库?

看起来可能有用


编辑:除了一对多,而不是多对多。但是,它仍然可以方便地代替您的
地图
地图
,或者用作参考。

到目前为止,这是一个比我想象的要简单得多的问题。我所知道的两个Java集合扩展是duffymo提到的Google和。两者都没有多对多地图。用谷歌的术语来说,这将是一个
双多重映射
;在Apache中,它将是一个
BidiMultiMap
MultiBidiMap

我自己编写了一些。我不相信有通用的。这里有问题吗?如果你想为你的图书馆做广告,也许有更好的地方?例如,在refactormycode.com上发布。无广告。。。我只是觉得它可能是在其他地方做的,而且更好……我非常需要这种类型的收藏。我希望它能很快在Google Collections/Guava中实现,但看起来不太可能。对于任何偶然发现这个问题的人,我向Guava libraries(又名Google Collections)提交了一个功能请求。现在是由其他人来创建它,因为我自己做它让我头疼。