2011-12-22 10 views
1

配列要素を新しい辞書のキーとして変換する最良の方法は何ですか?配列要素を新しい辞書のキーとして変換する最も良い方法

+1

Javaで辞書(またはおそらくHashMap)を作成するには、キーと値の両方が必要です。マップキーは、関連付けられたキーを使用してマップに値を入力すると作成されます。あなたが本当にやるべきことについてもう少し詳細を教えてください。 – sudocode

答えて

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メソッドがあります。最初のパラメータはキーになり、2番目のパラメータは値になります。配列全体を反復処理している間は、キーを持つことになります。それでは、そこにどのような価値が入るのかを決めるだけです。

+1

OPは配列の要素を値ではなくキーにしたいと考えています – soulcheck

+0

@soulcheck正直なところ、それほど多くの情報はありませんが、私はすべての基底をカバーしています。 – corsiKa

0
Integer[] keys = {1, 2, 3}; 
HashMap<Integer, Object> map = new HashMap<Integer, Object>(); 
Collections.addAll(map.keySet(), keys); 
関連する問題