【问题标题】:The best way to convert array elements as keys in a new dictionary将数组元素转换为新字典中的键的最佳方法
【发布时间】:2012-01-26 06:49:27
【问题描述】:

将数组元素转换为新字典中的键的最佳方法是什么?

【问题讨论】:

  • 要在 Java 中创建字典(或者更确切地说是 HashMap),您将需要键和值。当您将值与关联的键一起放入 Map 时,会创建 Map 键。您能否详细说明您真正需要做什么?

标签: java arrays dictionary


【解决方案1】:
Integer[] keys = {1, 2, 3};
HashMap<Integer, Object> map = new HashMap<Integer, Object>();
Collections.addAll( map.keySet(), keys );

【讨论】:

    【解决方案2】:

    这没什么好说的,但让我们看看:

    假设您有一个int[10],并且您想将它们存储在一个HashMap 中(现在字典很少使用)。你可以这样做:

    Map<Integer, Integer> dict = new HashMap<Integer, Integer>();
    for(int i = 0; i < array.length; i++) {
        dict.put(i,array[i]); // autoboxing takes care of primitives
    }
    

    如果您希望将数组中的实际值用作字典中的键,那么您必须问自己“我的字典值来自哪里?”

    例如,如果您希望将值作为索引,则可以将上面的内容颠倒过来

    dict.put(array[i],i);
    

    也许你有另一个数组,里面有一些值。

    int[] intArray = ...
    String[] strArray = ...
    Map<Integer, String> dict = new HashMap<Integer, String>();
    for(int i = 0; i < array.length; i++) {
        dict.put(intArray[i], strArray[i]); // autoboxing takes care of primitives
    }
    

    简单地说,你有一个put 方法。第一个参数是键,第二个参数是值。只要您在数组上进行迭代,您就会拥有您的密钥;那么这只是决定其中包含哪些值的问题。

    【讨论】:

    • OP 希望数组元素是键,而不是值
    • @soulcheck 老实说那里的信息不多 - 但我添加了更多信息,希望我已经涵盖了所有基础。
    猜你喜欢
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多