Java 中的两侧(双向)列表
Java中有类似双面列表的东西吗?也许第三方实施?
这里有一个小例子来展示我的想法。
原始状态:
A: 0-1-2-3 | | | | B: 0-1-2-3
删除 B 中的元素 1 后:
Null | A: 0-1-2-3 | / / B: 0-1-2
数据结构必须可从两侧访问。所以它更像是双向映射和列表的混合。
我想到的事情: a) 使用两个存储 Integer 对象的列表。缺点是这些必须始终保持同步。 b) 使用 Apache Commons 中的 BidiMap。其缺点是它是未排序的,并且在删除元素(更新其他索引)时表现得不像列表。
Is there something like a two sided list in Java? Maybe a third party implementation?
Here a little example to demonstrate what I have in mind.
Original state:
A: 0-1-2-3 | | | | B: 0-1-2-3
After removal of element 1 in B:
Null | A: 0-1-2-3 | / / B: 0-1-2
The data structure must be accessible from both sides. So it's more a mix of a bidirectional map and a list.
Things I thought about:
a) Using two lists that store Integer objects. The downside is that those must always be kept in sync.
b) Using a BidiMap from Apache Commons. The downside hereby is that it is unsorted and doesn't behave like a list when elements are removed (updating the other indidces).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Google 有一个双向地图。
Google has a bi-directional map.
最后,我使用了两个列表来保存从每个站点查看的位置。
由于我总是只修改其中一个列表,因此另一个列表将被重新计算。
下面是完整的代码(如果有人感兴趣的话)。它嵌入到 JFace 文档类中,但逻辑也可以在其他地方实现。
At the end I used two lists that save the positions viewed from each site.
As I always only modify one of the lists, the other will be recalculated.
Below the full code (if someone is interested). It is embedded into a JFace document class, but the logic could also be implemented somewhere else.