Java相当于Python字典

我是Python的长期用户,非常喜欢字典的使用方式。 他们非常直观,易于使用。 有没有一个好的Java相当于Python的字典? 我听说过使用hashmaps和hashtables的人。 有人可以解释使用哈希表和hashmaps与Python的字典的异同吗?

Python的dict类是Python文档非正式调用“ 映射types ”的实现。 在内部, dict是使用哈希表来实现的。

Java的HashMap类是Map接口的一个实现。 在内部, HashMap是使用哈希表来实现的。

在语法上有一些细微的差异,我相信这些实现稍有不同,但总的来说它们是完全可以互换的。

字典和地图的想法是相似的。 两者都包含像

 key1:value1, key2:value2 ... and so on 

在Java中, Map是以不同的方式实现的,比如HashMap ,或者TreeMapTreeMap put(), get()操作类似

 Map map = new HashMap(); // Put elements to the map map.put("Ram", new Double(3434.34)); map.put("Krishna", new Double(123.22)); map.put("Hary", new Double(1378.00)); //to get elements map.get("Krishna"); # =123.22 map.get("Hary"); # = 1378.00 

请参阅java8中的HashMap文档https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

二者之间的一个区别在于, dict对哪些数据types可以作为关键字有更严格的要求。 Java将允许任何对象作为一个键 – 尽pipe你应该注意确保对象的hashCode()方法返回一个反映其内部状态的唯一值。 Python要求键符合其可哈希的定义,它指定对象的哈希码在其整个生命周期内永远不会改变。

据我所知(我实际上不使用Java)字典是一个hashmap /哈希表的另一个名称。

http://www.fluffycat.com/Java/HashMaps/抓取代码,看起来它们以非常类似的方式使用,带有一些额外的Java锅炉板。;