2011-12-22 46 views
1

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

+1

要在Java中创建一个Dictionary(或者可能是HashMap),您将需要键和值。当您使用关联的键将值放入Map中时,会创建Map键。你能否详细说明你真正需要做什么? – sudocode 2011-12-22 16:53:10

回答

3

这是没有太多去,但让我们看到:

假设你有一个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方法。第一个参数将成为关键,第二个参数将成为价值。只要你遍历数组,你将拥有你的密钥;那么这只是一个决定哪些值进入的问题。

+1

OP希望数组元素是键,而不是数值 – soulcheck 2011-12-22 16:58:42

+0

@soulcheck它真的没有太多的信息 - 但我在希望涵盖的所有基础中增加了更多信息。 – corsiKa 2011-12-22 18:34:33

0
Integer[] keys = {1, 2, 3}; 
HashMap<Integer, Object> map = new HashMap<Integer, Object>(); 
Collections.addAll(map.keySet(), keys); 
相关问题