Java中与Python字典等效的结构
我一直在使用Python,对字典的用法非常喜欢。字典非常直观,使用起来也很简单。那么在Java中有没有和Python字典相似的东西呢?我听说过有人使用哈希表和哈希映射。能不能有人解释一下哈希表和哈希映射与Python字典之间的相似之处和不同之处?
4 个回答
6
这两者之间的一个区别是,dict
对于可以作为键的数据类型要求更严格。Java 允许任何对象作为键使用——不过你需要确保这个对象的 hashCode()
方法返回一个独特的值,这个值应该能反映对象的内部状态。而 Python 则要求键必须符合它对可哈希的定义,这个定义规定对象的哈希值在其生命周期内不能改变。
50
字典和映射的概念是相似的。它们都包含一些元素,比如:
key1:value1, key2:value2 ... and so on
在Java中,Map
有不同的实现方式,比如HashMap
和TreeMap
等。put()
和get()
这两个操作是类似的。
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
可以查看Java 8中HashMap的文档,链接在这里:https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html