【问题标题】:Transfer all keys of a HashMap into ArrayList [duplicate]将 HashMap 的所有键转移到 ArrayList [重复]
【发布时间】:2018-02-06 20:09:55
【问题描述】:

我将映射中的所有键放入一个 HashSet。

我希望能够将其转移到 ArrayList 中。

【问题讨论】:

    标签: java collections


    【解决方案1】:

    为什么不使用 addAll 方法?

    Set<KeyType> keys = map.keySet();
    List<KeyType> res = new ArrayList<>();
    res.addAll(keys);
    

    没有?

    【讨论】:

    • “没有?”不!永远不要建议使用原始类型。
    • 好吧,这只是一个没有类型声明的示例,因为 OP 没有提供代码......但没关系,我习惯于看到这种评论,假设坏事是一个简单的代码摘录...
    • 是的,这就是 Stack Overflow 试图提供高质量答案的问题。诸如您的答案之类的内容将被否决,因为它们远非“质量好”。
    【解决方案2】:

    你是不是这个意思:

    Map<K, V> map = new HashMap<>();
    List<K> list = new ArrayList<>(map.keySet());
    

    【讨论】:

      【解决方案3】:

      看来您已经知道Set&lt;KeyType&gt; set = map.keySet() 返回一组键:

      要将这些放入ArrayList&lt;KeyType&gt;,您只需执行new ArrayList(set);

      【讨论】:

        【解决方案4】:
        Map<String,String> mymap = new HashMap<>();
        // add data to the map
        String[] array = mymap.keySet().toArray(new String[0]);
        

        【讨论】:

        • 您使用此代码填充数组而不是 ArrayList。
        • 感谢您提供此代码 sn-p,它可能会提供一些即时帮助。一个正确的解释would greatly improve 其教育价值通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有类似但不相同的问题的读者更有用。请edit您的答案添加解释,并说明适用的限制和假设。
        【解决方案5】:
        Arrays.asList(map.keySet().toArray());
        

        会是一个很好的起点

        【讨论】:

        • 请不要让 Arrays.asList 返回 java.util.Arrays.ArrayList 而不是 java.util.ArrayList
        猜你喜欢
        • 2011-12-09
        • 1970-01-01
        • 2018-04-12
        • 2017-08-14
        • 2019-03-02
        • 2016-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多