我是Python的长期用户,非常喜欢使用字典的方式。它们非常直观,易于使用。是否有相当于Python的字典的Java?我听说过使用hashmaps和hashtables的人。有人可以解释使用哈希表和hashmaps与Python的字典的相似之处和不同之处吗?Java相当于Python字典
回答
Python的dict
类是Python文档非正式地称为“mapping types”的实现。在内部,dict
是使用散列表实现的。
Java的HashMap
类是Map
接口的实现。在内部,HashMap
是使用散列表实现的。
在语法上有一些细微的差异,我相信实现的调整方式稍有不同,但总的来说它们是完全可以互换的。
据我所知(我实际上没有使用java)字典只是hashmap /哈希表的另一个名称。
从http://www.fluffycat.com/Java/HashMaps/获取代码似乎他们以非常相似的方式使用,有一点额外的Java锅炉板。
的Java甚至有一个由Hashtable实现的Dictionary接口。虽然HashMap通常是首选。 – 2009-10-08 21:48:05
@Michael Myers:字典已被弃用,Oracle建议使用Map来代替http://docs.oracle.com/javase/7/docs/api/java/util/Dictionary.html – 2015-03-26 16:02:36
这两者之间的一个区别是dict
对于哪些数据类型可以充当关键字有更严格的要求。 Java将允许任何对象作为一个键 - 虽然你应该注意确保该对象的方法返回一个反映其内部状态的唯一值。 Python需要密钥来适应其hashable的定义,该定义指定对象的哈希代码在其生命周期内绝不应该改变。
这是真的,但它并没有被两种语言实际执行。显然,在Java'hashCode()'方法或Python'__hash __()'方法中,您应该尝试返回反映内部状态的唯一值。无论是Java还是Python,如果你有一个可变对象,它可能不应该是一个散列表键,所以从'hashCode()'或'__hash __()'方法抛出一个异常是有意义的。 – 2009-10-09 21:57:41
字典和地图的想法是相似的。两者都包含像
key1:value1, key2:value2 ... and so on
在Java元素,Map
实现不同的方式像HashMap
,或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
见HashMap中的文档中java8 https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html
- 1. SPSS相当于Python字典
- 2. 相当于R中Python字典
- 3. python相当于java的OutputStream?
- 4. Java:相当于Python的str.format()
- 5. 相当于Java Python的json.dumps
- 6. python相当于java Matcher.quoteReplacement()
- 7. Python的toordinal()相当于Java?
- 8. 相当于Java的Class.getResource的Python
- 9. 是否有相当于Java的Boost :: Python?
- 10. java的getByte()在python中相当于
- 11. 相当于Java的BitSet的Python
- 12. 相当于Java的JNLP Web Start的Python?
- 13. 相当于Python的Java抽象类吗?
- 14. Java的的printStackTrace(),相当于在python
- 15. 相当于python的getattr的Java?
- 16. 相当于Java Python的格式()
- 17. Python的相当于Java的Set.add()?
- 18. 相当于python的String lstrip()的Java?
- 19. JOptionPane相当于python?
- 20. python - strtotime相当于?
- 21. Python左()相当于?
- 22. Python相当于phpinfo()
- 23. python相当于sprintf
- 24. python相当于jstack?
- 25. 使用字典(类似于Python字典)
- 26. callgrind相当于java?
- 27. Java相当于scala.collection.mutable.Map.getOrElseUpdate
- 28. Java相当于app.config?
- 29. Java相当于Buffer.BlockCopy
- 30. Pexpect相当于java?
没有提供示例:( – 2016-09-13 22:07:51
@kami:你想要什么样的例子? – 2016-09-14 03:40:05
任何一个例子都说明了python字典在运行中的java等价物,一个有用的答案包含了一些例子,因为大多数人来这里看例子并在他们的代码中使用它们 – 2016-09-14 16:26:16