如何在 Android 上用 Java 创建 Multimap
我在哪里可以找到 Java 的 multimap 实现,它可以在 Android 上运行,而无需包含任何其他类等。我发现的实现都需要其他东西,而这些东西又需要其他东西,而且很快就会变得混乱。我正在从 C++ 移植一个项目,并且是 java 的新手(也是这个项目,所以我试图在使其工作时尽可能保持相同),因此任何参考或示例都会很棒。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用映射和列表来创建多重映射。假设您想要将整数与类类型 T 的列表关联起来。请使用以下代码:
Map> myMultiMap = new HashMap>();
它可能会变得混乱,但是,这应该会给你你正在寻找的东西。
另一种选择是使用 Guava 库的 Multimap 实现。
You could use a Map and a List to create a multimap. Say you wanted to associate an integer with a list of class type T. Use the following code:
Map<Integer, List<T>> myMultiMap = new HashMap<Integer, List<T>>();
It could get messy but, this should give you what you're looking for.
Another option is to use the Guava library's Multimap implementations.
您似乎正在寻找 Apache Commons Collection 库。那里有一个 MultiMap 类。我还没有亲自测试过它,所以我不能保证它有效,但它看起来很适合您的项目。
在 Java 中找不到 MultiMap 函数,因此其他人编写了包含它的库。不过,如果您的知识水平足够高,但需要一些 Java 经验,您可以尝试自己实现它。因此,最好的选择是尝试学习如何使用它们,并在必要时调整库以便在 Android 上使用它们。
It looks like you are looking for Apache Commons Collection library. There you have a MultiMap class. I haven't tested it myself yet so I can't promise it works but it just looks about right for your project.
You won't find a MultiMap function in Java hence others have written libraries containing it. You can however try to implement it yourself if you're knowledge-level is high enough but that'd require some Java experience. So your best bet is to try to learn how to use and if necessary adapt libraries for using them on Android.
如果您关心代码大小,我们刚刚将多重映射添加到我们的实用程序库中:
http://greenrobot.org/2015/12/ 11/multimaps-in-greenrobot-common-2-2/
该 jar 远低于 100k,如果考虑到 Android 的 65K 方法限制,这很好。
If you care about code size, we just added multimaps to our utility library:
http://greenrobot.org/2015/12/11/multimaps-in-greenrobot-common-2-2/
The jar is way below 100k, which is nice if you consider Android's 65K method limit.