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
,或者TreeMap
等TreeMap
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锅炉板。;