我想用Java編寫我自己的Map。我知道地圖是如何工作的,但我不知道你可以在哪裏保存鍵和值。我可以讓他們例如在列表中?所以鑰匙將被存儲在列表中,並且值將被存儲在另一個列表中?Java中的集合映射
0
A
回答
0
如果您檢查了HashMap,TreeMap,HeapMap等背後的一些概念,那麼最好的方法是使用它。 一旦你理解了這些概念,當談到速度的時候,你可以更好地編寫自己的地圖。換句話說,除非你知道所有可用實現的概念,否則你的車輪重新發明將是一個更好的解決方案,這是非常不可能的。 此外,請務必非常全面地測試您的實現,因爲Collection是任何優秀應用程序的支柱和核心。
兩個非常非常簡單(但緩慢)的解決方案是這些:
1)正如上文所述,您可以使用ArrayList<Pair>
並添加Java中自定義getItemByKey()(通常稱爲「得到」)方法。
2)您可以使用兩個數組,兩個數組保持相同的大小,並保持鍵和值與各自的索引匹配。
0
對於選擇數據結構,不會比Array
(不是所有的時間都差不多)的條目(鍵/值)更好,因爲映射的主要目標是爲對象映射對象,因此將鍵映射到值。
使用數組實現快速和常量訪問O(1),但是有一點問題,當地圖已滿時,必須創建新的Array並複製舊的條目。
注意:HashMap
以同樣的方式工作。
相關問題
- 1. 的Java MapStruct集合映射
- 2. 集合映射
- 3. JAXB集合映射
- 4. 將FireStore集合映射到Java POJO
- 5. 集合映射vs關聯映射
- 6. Java集合 - 映射和集合:put不能應用
- 7. 如何映射Nhibernate集合
- 8. NHibernate - 映射組件集合?
- 9. nhibernate:如何映射集合
- 10. NHibernate查詢映射集合
- 11. 自動映射器集合
- 12. Hibernate映射集合由
- 13. 使用LINQ映射集合
- 14. NHibernate中的多對多集合映射
- 15. Java映射混合類型
- 16. RestKit:映射二維數組(集合中的集合)
- 17. 在Castor中將集合映射到XML
- 18. RestKit映射錯誤「無法將對象集合映射到不可變集合。」
- 19. 功能NHibernate自動映射與覆蓋:映射未映射的基類集合
- 20. NullReferenceException映射與流利NHibernate自動映射枚舉的集合
- 21. NHibernate的映射與鑑別集合
- 22. 異常NHibernate的集合/繼承映射
- 23. 枚舉集合的nHibernate代碼映射
- 24. 組件集合映射NHibernate的3.2
- 25. NHibernate的集合映射問題
- 26. NHibernate的集合映射 - 只讀屬性
- 27. NHibernate - 如何映射樹的集合
- 28. 使用映射的JPA集合
- 29. 的DTO集合映射問題
- 30. 將mongodb集合映射到不存在的java類
是的,你可以做到這一點,如果你想。或者你可以創建一個'List',其中每個元素是一個鍵/值對(可能使用'MapEntry')。找出最簡單的方法就是嘗試。 –
你的意思是'編寫自己的地圖實現'而不是使用標準java庫中的實現嗎? – 1ac0
是的。那就是我的意思。 –