我似乎在谷歌中使用了错误的搜索词......
我已经为多对多关联编写了一个通用类,但我猜这已经完成了。它很可能存在于比我自己的实现更好的实现中。这是我第一次尝试编写通用类。
为了更好地了解我正在寻找的内容,我添加了一些我自己的片段:
我用 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>>();
这是实例化:
new ManyToManyAssociations<Integer, Integer>();
一些可用的方法:
- 公共无效addAssociation(T t,S s)
- 公共无效删除关联(T t,S s)
- 公共列表 getListOfTs()
- 公共列表
getListOfSs()
- 公共列表 getTsForSs(S s)
- 公共列表
getSsForTs(T t)
这些方法的名称很糟糕......我很抱歉。
基本用法是:
我可以很容易地找到 T 的所有 S 以及相反的情况。
您可以发布已包含此功能的精美库的链接吗?
到目前为止,这个问题没有我想象的那么简单。我立即想到的两个 Java Collections 扩展是 duffymo 提到的 Google 扩展,以及Apache 共享集合 http://commons.apache.org/collections/。两者都没有多对多映射。用谷歌的术语来说,这将是BiMultiMap
;在 Apache 中,这将是BidiMultiMap
or MultiBidiMap
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)