【问题标题】:how do i import multimap for java?我如何为java导入multimap?
【发布时间】:2013-02-02 05:39:46
【问题描述】:

这有点愚蠢,但我该如何安装MultiMap

我需要一种将多个值存储到键的方法,但我的地图实现不起作用

【问题讨论】:

    标签: java map multimap


    【解决方案1】:

    multimap 类似于 Map,但它可以将每个键映射到多个值。如果您自己的不起作用,您可以将apache commons collections 添加到您的类路径中。下载 jar 并将其包含在您的类路径中。

    但您也可以将自己的多图实现为:HashMap<SomeObject, List<YourObject>>()
    multimaps下查看示例

    【讨论】:

    • 我已经看过了,但仍然无法导入。我了解multipmap的前提,我只想要java文件,谢谢。
    • 无法导入是什么意思?你用的是eclipse吗?只要在你的构建路径中添加jar即可。
    • @Cratylus - 我认为这让 Matt 感到困惑,他以前没有使用过外部库。
    【解决方案2】:

    该类MultiMap 不是Java 标准库的一部分。它是Apache Commons 的一部分,这是一组许多Java 开发人员认为有用的独立实用程序类。在 Google 的实用程序库 Guava 中提供了替代的 Multimap 实现(我会推荐)。

    在任何一种情况下,为了使用这些类,您都需要下载项目分发的 jar,并在运行程序时将其添加到类路径中。您可以在命令行中执行此操作:Including jars in classpath on commandline (javac or apt) 或在 Eclipse 中:Adding a JAR to an Eclipse Java library

    如果您在 Google 上搜索“安装 jars”和“将 jars 添加到 eclipse”之类的短语,您会发现很多资源可以帮助您,如果您仍在苦苦挣扎。

    【讨论】:

    • 感谢 JAR 下载链接 :) 我正在寻找它
    【解决方案3】:

    这不是 MultiMap 类,但我通过使用集合作为值来解决这个问题:

    HashMap<String, ArrayList<Integer>> metrics = new HashMap<String, ArrayList<Integer>>();
    

    【讨论】:

    • 来自Vector docs:“推荐使用ArrayList代替Vector”。然而,更重要的是,我会走“围绕问题的代码”的相反方向,并主张任何时候你发现自己想要你描述的类型签名,你应该简单地安装 Guava。你的代码会更干净,错误更少,每个人都很开心。
    • 你的代码可能更干净,但它也会有更多的依赖(即 Guava)。 “你会有更少的错误”是一个很好的一般建议,而不是“围绕问题编写代码”的一般建议,但在这种情况下,示例非常简单,引入错误的风险很小。事实上,我什至会说,与使用您不太了解的框架(例如 Guava)相比,风险更低。不过,关于向量的好点。我已经相应地更新了我的答案。
    • 我主张 Guava 是一个如此强大和有用的库,如果没有它,你在现代 Java 项目中工作就会犯错误;但我明白你在说什么,在使用库和重新发明轮子之间肯定需要权衡。
    【解决方案4】:

    multimap 实用程序的 Maven 依赖项

     <dependency>
        <groupId>org.solovyev</groupId>
        <artifactId>common-collections-multimap</artifactId>
        <version>1.0.3</version>
    </dependency>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 2023-03-15
      • 2012-09-10
      • 1970-01-01
      相关资源
      最近更新 更多