【问题标题】:Add element to arraylist inside haspmap in java 1.4在java 1.4中将元素添加到hashmap内的arraylist
【发布时间】:2017-06-22 13:03:52
【问题描述】:

我需要在不支持泛型的 java 1.4 中工作。这是我用java 8写的代码

LinkedHashMap<String, ArrayList<String>> m = new LinkedHashMap<>();
ArrayList<String> vals = new ArrayList<String>();
m.put("a", vals);
m.get("a").add(var_name);

阅读 jdk 1.4 文档后,我设法编写了以下代码,但是如何在地图内向 ArrayList 添加元素?我不想先将值添加到 ArrayList,然后将 ArrayList 添加到映射。

LinkedHashMap m = new LinkedHashMap();
ArrayList vals = new ArrayList();
m.put("a", vals);

【问题讨论】:

    标签: java arraylist hashmap java1.4


    【解决方案1】:

    你必须事先投射

    ((ArrayList)m.get("a")).add(var_name);
    

    当然,如果您想稍后使用该值,您也必须强制转换。

    【讨论】:

    • 它有效,但在其他任何地方都找不到有关此的信息。非常感谢。
    【解决方案2】:

    如果您使用的是更高版本的 java,您甚至可以这样做

     m.put("a", new ArrayList<String>(Arrays.asList("one")));
     m.get("a").add("two");
    

    http://ideone.com/IGnHF4

    【讨论】:

    • op 指的是 java 1.4 的要求。 Java 1.4 中不存在泛型。
    • 我没有投反对票,但new ArrayList&lt;String&gt; 仍然无法编译。
    • @davidxxx 它工作正常你确定吗?在问题ideone.com/IGnHF4 中找到更新后的示例
    • 我不明白你怎么说它不会编译,也请反对者发表评论
    • 这并没有回答问题,因为 OP 专门要求 Java 1.4,并且他已经在问题本身中展示了一个非常相似的解决方案,该解决方案在 Java 8 中有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多