2010-12-21 7 views
3
$tagArray = array(
    "apples" => 12, 
    "oranges" => 38, 
    "pears" => 10, 
    "mangos" => 24, 
    "grapes" => 18, 
    "bananas" => 56, 
    "watermelons" => 80, 
    "lemons" => 12, 
    "limes" => 12, 
    "pineapples" => 15, 
    "strawberries" => 20, 
    "coconuts" => 43, 
    "cherries" => 20, 
    "raspberries" => 8, 
    "peaches" => 25 
    ); 

私はこれをJavaで行うことができます。どのようにして1番目と2番目のパラメータを呼び出すことができますか?phpをjava/android配列に変換する

+0

何のために変換しますか? – qrtt1

答えて

13

Javaには、連想配列のサポートが組み込まれていません。 javaの対応するデータ構造はMapです。この場合、たとえばHashMapを使用できます。

ここには1つの方法があります。

Map<String, Integer> tagArray = new HashMap<String, Integer>() {{ 
    put("apples", 12); 
    put("oranges", 38); 
    put("pears", 10); 
    put("mangos", 24); 
    put("grapes", 18); 
    put("bananas", 56); 
    put("watermelons", 80); 
    put("lemons", 12); 
    put("limes", 12); 
    put("pineapples", 15); 
    put("strawberries", 20); 
    put("coconuts", 43); 
    put("cherries", 20); 
    put("raspberries", 8); 
    put("peaches", 25); 
}}; 

@Peter Lawreyはコメントで指摘するように、あなたが

int value = tagArray.get("lemons"); 

を行う"lemons"、たとえば、値を取得するには、次の配列の順序が重要な場合は、使用することができますHashMapの代わりにLinkedHashMapです。

+2

私にとっては速すぎます。 ;)私はLinkedHashMapを使用して、配列のように順序を保持します。 –

+0

うわー、javaは今この種の初期化を持っていますか?勉強中です!また、(@lacas)ここにいくつかの情報があります:http://c2.com/cgi/wiki?DoubleBraceInitialization –

+0

ああ、そうです、配列は地図とは対照的な順序です...私は私の答えを更新します。 – aioobe

関連する問題