我想用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
是的。那就是我的意思。 –