Java中Ruby Harash的等价物

时间:2014-03-29 22:22:56

标签: java ruby hash

我真的习惯使用Ruby中的以下代码:

my_hash = {}

my_hash['test'] = 1

Java中相应的数据结构是什么?

2 个答案:

答案 0 :(得分:5)

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

我假设?

答案 1 :(得分:3)

在Java中,有很多类实现了Map<K,V>接口,这就是Ruby“哈希”(数据结构通常也称为“字典”,或者它的全名,a “哈希表”)。所以在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);

这有点类似于Ruby中的“duck-typing”,如果一个对象响应方法调用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