Java 等价于 Python 字典

我是 Python 的长期用户,非常喜欢字典的使用方式。它们非常直观,易于使用。有没有与 python 的字典相当的 Java 语言?我听说过有人使用散列表和散列表。有人能解释一下使用散列表和散列映射与使用 python 字典之间的异同吗?

91759 次浏览

据我所知(我实际上并不使用 java) ,字典只是散列表/散列表的另一个名称。

http://www.fluffycat.com/Java/HashMaps/中获取代码,看起来它们的使用方式非常相似,只是有一些额外的 java 代码。

Python 的 dict类是 Python 文档非正式地称为“ 映射类型”的实现。在内部,dict使用哈希表实现。

Java 的 HashMap类是 Map接口的一个实现。

语法上有一些细微的差别,我相信实现的调整方式略有不同,但总的来说它们是完全可以互换的。

两者之间的一个区别是,dict对于哪些数据类型可以作为键有更严格的要求。Java 将允许任何对象作为键工作——尽管您应该注意确保对象的 hashCode()方法返回一个反映其内部状态的唯一值。Python 需要键来适应它的 散列的定义,散列的指定对象的哈希代码在其生命周期内永远不应该更改。

Dictionary 和 Map 的思想相似

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

在 Java 中,Map是以不同的方式实现的,比如 HashMap,或者 TreeMap等等

import java.util.HashMap;


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

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