Java等价于Python字典

67up9zun  于 2023-03-28  发布在  Java
关注(0)|答案(4)|浏览(125)

我是Python的长期用户,非常喜欢字典的使用方式。它们非常直观,易于使用。有没有一个很好的Java等效于Python的字典?我听说有人使用哈希Map和哈希表。有人能解释一下使用哈希表和哈希Map与Python字典的异同吗?

iyr7buue

iyr7buue1#

Python的dict类是Python文档非正式地称为“Map类型”的实现。在内部,dict是使用哈希表实现的。
Java的HashMap类是Map接口的实现。在内部,HashMap是使用哈希表实现的。
在语法上有一些小的差异,我相信实现的调优也略有不同,但总的来说它们是完全可以互换的。

ca1c2owp

ca1c2owp2#

dictionary和Map的思想是类似的。

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

在Java中,Map的实现方式与HashMapTreeMap等不同。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

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

x8diyxa7

x8diyxa73#

两者之间的一个区别是dict对什么数据类型可以充当键有更严格的要求。Java将允许任何对象充当键--尽管您应该注意确保对象的hashCode()方法返回反映其内部状态的唯一值。Python需要键来满足其hashable的定义。它指定对象的散列代码在其生存期内永远不应更改。

g0czyy6m

g0czyy6m4#

据我所知(我实际上并不使用java)字典只是hashmap/hashtable的另一个名字。
http://www.fluffycat.com/Java/HashMaps/抓取代码,看起来它们的使用方式非常相似,只是有一点额外的java样板。

相关问题