2010-12-21 9 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 
    ); 

Wie kann ich dies in Java tun, und wie für die ersten und zweiten Parameter aufrufen?Konvertieren von PHP zu Java/Android-Arrays

+0

Konvertieren wofür? – qrtt1

Antwort

13

Java unterstützt keine assoziativen Arrays. Die entsprechende Datenstruktur in Java ist eine Map. In diesem Fall könnten Sie zum Beispiel eine HashMap verwenden.

Hier ist eine Möglichkeit.

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); 
}}; 

Um den Wert für, sagen wir bekommen, "lemons" Sie

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

tun Wie @ Peter Lawrey in den Kommentaren betont: Wenn die Reihenfolge in der Anordnung ist wichtig für Sie, Sie verwenden könnte anstelle von HashMap.

+2

Zu schnell für mich. ;) Ich würde eine LinkedHashMap verwenden, um die Reihenfolge wie in einem Array beizubehalten. –

+0

Wow, Java hat diese Art von Initialisierung jetzt? Ich lerne! Auch, (@lacas) hier ist ein paar Informationen darüber: http://c2.com/cgi/wiki?DoubleBraceInitialization –

+0

Ah, rechts, Arrays sind im Gegensatz zu Karten bestellt ... Ich werde meine Antwort aktualisieren. – aioobe