2014-03-29 8 views

Antwort

5
HashMap<String, Integer> map = new HashMap<>(); 
map.put("test", 1); 

Ich nehme an?

+3

Es lohnt sich auch, eine ['LinkedHashMap'] (http://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html) zu betrachten, wenn Sie in der Lage sein möchten, über Ihre Elemente zu iterieren Anzeigenauftrag – Jeffrey

3

In Java gibt es viele Klassen, die die Map<K,V> Schnittstelle implementieren, was ein Ruby "Hash" ist (die Datenstruktur wird auch allgemein als "Dictionary" bezeichnet, oder durch ihren vollständigen Namen, eine "Hashtabelle")). So in Java, können Sie entweder eine Instanz der Schnittstelle deklarieren und eine konkrete Klasse zuweisen, oder Sie können die konkrete Instanz deklarieren direkt:

Map<String, String> definitions = new HashMap<String, String>(); 
definitions.put("dog", "a four-legged mammal that is Man's best friend"); 
definition = definitions.get("dog"); 

TreeMap<Integer, String> players = new TreeMap<Integer, String>(); 
players.put(10, "John Doe"); 
player = players.get(10); 

Dies ist etwas ähnlich „duck-typing“ in Ruby, Wenn ein Objekt auf einen Methodenaufruf X() reagiert, interessiert sich Ruby eigentlich nicht für den Objekttyp, den es aufruft X().

Hier finden Sie die Liste der einige der Klassen, die die Map<K,V>-Schnittstelle implementieren:

  1. AbstractMap
  2. ConcurrentHashMap
  3. ConcurrentSkipListMap
  4. EnumMap
  5. HashMap
  6. Hashtable
  7. IdentityHashMap
  8. LinkedHashMap
  9. TreeMap
  10. WeakHashMap
+0

Sie können keine Generics eines primitiven Typs haben. 'TreeMap ' wird nicht kompiliert. – Jeffrey

+0

@ Jeffrey behoben. –