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

Dan*_*wer 18 java generics data-structures

我似乎在Google中使用了错误的搜索字词...

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

为了更好地了解我正在寻找的东西,我收录了一些我自己的片段:

我用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>>();
Run Code Online (Sandbox Code Playgroud)

这是实例化:

new ManyToManyAssociations<Integer, Integer>();
Run Code Online (Sandbox Code Playgroud)

一些可用的方法:

  • public void addAssociation(T t,S s)
  • public void removeAssociation(T t,S s)
  • public List <T> getListOfTs()
  • public List <S> getListOfSs()
  • 公开列表<T> getTsForSs(S s)
  • 公共列表<S> getSsForTs(T t)

这些方法的名字很差......我道歉.

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

您是否可以将链接发布到已包含此功能的抛光库中?

Mic*_*ers 2

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

编辑:除了它是一对多,而不是多对多。但是,使用它代替Map<T, List<S>>andMap<S, List<T>>或作为参考仍然可能很方便。