我是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