2014-03-29 144 views
5

Ruby的哈希的我真的用在紅寶石下面這種代碼:等效於Java的

my_hash = {} 

my_hash['test'] = 1 

什麼是Java中的相應數據結構?

+1

甲'Map'。我使用的實現是一個'HashMap'。 – PlasmaPower

回答

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

我假設?

+3

如果你想能夠迭代你的元素,它也值得考慮['LinkedHashMap'](http://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html)廣告訂單。 – Jeffrey

3

在Java中,有許多類實現了接口,這是Ruby的「散列」(數據結構也被稱爲「字典」,或者其全名,「散列表」 )。因此,在Java中,你可以聲明接口的實例,並指定一個具體的類它,或者你可以直接申報的具體實例:

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

這是「鴨打字」的紅寶石有些相似,如果一個對象響應方法調用X(),那麼Ruby實際上並不關心它調用X()的什麼類型的對象。

以下是一些實施Map<K,V>接口的類的列表:

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

您不能擁有原始類型的泛型。 'TreeMap '不會編譯。 – Jeffrey

+0

@Jeffrey固定。 – 2014-03-29 22:57:43