Java相当于Python词典

sli*_*mbo 83 python java hash dictionary

我是Python的长期用户,并且非常喜欢使用字典的方式.它们非常直观且易于使用.是否有一个好的Java等同于python的字典?我听说有人使用hashmaps和hashtables.有人可以解释使用哈希表和哈希映射与python的词典的相似之处和不同之处吗?

Dan*_*den 96

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

Java的HashMap类是Map接口的实现.在内部,HashMap使用哈希表实现.

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

  • 没有提供示例:( (32认同)
  • @kami:我不认为这是对的.问题不在于"某些特定Python代码的等效Java代码是什么".事实上,这个问题根本不包含任何代码.我不确定添加在Java中使用Map API的示例有什么价值; 这个答案已经链接到规范文档.如果您想学习Java,请从教程开始,而不是Stack Overflow.我当然不认为这个答案只是因为缺少可复制粘贴的代码示例而需要保证. (9认同)
  • 任何举例说明了python的字典在运行中的java等价物.一个有用的答案包括一些例子,因为大多数人来这里看示例并在他们的代码中使用它们. (4认同)
  • 悲伤,就阅读评论说:“大多数人来这里看的例子和*在他们的代码中使用它们*”,我希望这是错误的。 (4认同)
  • 无论人们是否想要复制粘贴,示例通常都有助于更好地理解一般对话和编程中的任何内容。尤其。这个答案的赞成票数量表明了比 OP 更大的人群的兴趣程度。但我确实同意这并不值得投反对票 (3认同)
  • @kami:你想要什么样的例子? (2认同)

小智 25

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

key1:value1, key2:value2 ... and so on
Run Code Online (Sandbox Code Playgroud)

在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 
Run Code Online (Sandbox Code Playgroud)

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

  • Java 中的注释是“//”,而不是“#”:) (2认同)

Tab*_*tha 5

据我所知(我实际上并没有使用 java)字典只是 hashmap/hashtable 的另一个名称。

http://www.fluffycat.com/Java/HashMaps/抓取代码似乎它们以非常相似的方式使用,还有一些额外的 java 样板。

  • Java甚至有一个由Hashtable实现的Dictionary接口。不过,通常首选 HashMap。 (3认同)

Tim*_*ons 5

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