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