Java中是否存在使用generics(域模型,而不是持久层)的多对多集合?
我似乎在Google中使用了错误的搜索字词…
我为多对多关联编写了一个通用类,但我猜这已经完成了。 它很可能存在于比我自己更好的实现中。 这是我第一次尝试编写generics类。
为了更好地了解我正在寻找的东西,我收录了一些我自己的片段:
我用2个哈希映射支持它:
private final Map<T, List> ssForTs = new HashMap<T, List>(); private final Map<S, List> tsForSs = new HashMap<S, List>();
这是实例化:
new ManyToManyAssociations();
一些可用的方法:
- public void addAssociation(T t,S s)
- public void removeAssociation(T t,S s)
- public List getListOfTs()
- public List
getListOfSs() - 公共列表 getTsForSs(S s)
- 公共列表
getSsForTs(T t)
这些方法的名字很差……我道歉。
基本用法是:我可以很容易地找到所有S for T和反向。
您是否可以将链接发布到已包含此function的抛光库中?
到目前为止,这是一个比我想象的更小的问题。 我所知道的两个Java Collections扩展是duffymo提到的Google和Apache Commons Collections 。 没有多对多的地图。 在谷歌的术语中,它将是一个BiMultiMap
; 在Apache中,它将是BidiMultiMap
或MultiBidiMap
。
看起来Apache Commons Multimap可能很有用。
编辑:除了它是一对多,而不是多对多。 但是,使用它代替Map
和Map
或作为参考仍然可能很方便。 >