gpt4 book ai didi

java - 在 Java 中拥有 1 到 N 类似结构的双向 Hashmap 的最佳方法是什么

转载 作者:行者123 更新时间:2023-11-30 02:09:54 25 4
gpt4 key购买 nike

我有两个实体,PersonAge 。而 Person 的值是独一无二的,Age多个 Person 可以相同.

如果我只想查找 AgePerson ,我会使用 HashMap 。但我还想检索 Person 的列表特定的Age 。我能想到的解决方案是有另一个 HashMap<String, List<Long>>用于反向查找。是否有一个数据结构或类似 map 的接口(interface),在两个方向上进行 O(1) 查找,可以完成两个 HashMap 的工作是在一个吗?请注意,我使用了 PersonAge作为一个简单的例子,真正的例子不是存储在数据库中的东西,而是从服务中获取的,所以我必须按我得到的方式处理它们。

更新:

我认为 Guava MultiMap可以解决这个问题。因为在我的例子中,键和值都是 String ,所以它会起作用。只是看起来有点不干净。

最佳答案

这取决于你的要求有多复杂 - 我过去也遇到过类似的情况,但我的情况有点复杂,我有 4 或 5 个字段我希望能够查找,所以我结束了所做的就是使用内存数据库(我使用 H2,但也有一些)。然后,我对我想要查找的所有字段建立了索引。因为它位于内存中,所以速度非常快,并且如果使用 JPA 等,代码仍然非常干净。显然,这比仅使用 HashMap 更复杂,但如果您的需求变得更复杂,则可以更好地扩展。

关于java - 在 Java 中拥有 1 到 N 类似结构的双向 Hashmap 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50413108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com