如果我们没有任何haspmap API,如何制作HaspMap?如果我们没有任何haspmap API,如何制作HaspMap
回答
我正在搭便车,并且猜测你的意思是HashMap
,并且你没有HashMap
API的原因是你正在使用Java ME。
答案是使用HashTable
...... Java ME确实有AFAIK。
在另一方面,如果这是一个家庭作业的问题,你已被要求从头开始实现自己的哈希表,那么你应该通过阅读了如何哈希表的工作开始。请参阅您的讲义,你的数据结构教科书...或查找“哈希表”在维基百科上/谷歌
我的猜测是这是一项家庭作业。 – jahroy
哈希地图的基础是:
1)有后备存储 - 阵列(或相当于)至少与包含的条目数一样大。两个数组中的一个用于键值1,或者是键值对的元组阵列(后者可能更好)
2)一个函数,用于决定我们将新键放入哪个键阵列索引。通常这将是key.HashCode()%array.Length - 但是如果它已经持有一个密钥并且它不是相同的密钥(通过key.Equals(),那么你尝试右边的下一个桶,直到我们找到一个,只要我们在从哈希映射中删除一个键时进行相反的操作就可以了 - 换句话说,因为这个'滑动键'已经完成了,因为没有如果我们打一个洞,我们必须看看是否有一个关键点需要滑进来填补这个缺口(例如,不要将任何关键点比我们要检查的第一个位置向左滑动,否则如果我们可以向左滑动,向左滑动)
3)现在,要查看HashMap中是否存在某个键,请计算我们放置它的位置并检查该索引。如果它被占用,并等于(),找到它。如果它被占用并且不匹配,则以相同的方式在右边检查一个。如果它是空的,没有找到它。
4)多一个操作,一个艰难的 - 当我们接近填满时重建后备存储的两倍大小(越接近填满我们得到的效率越差,所以你想要在填满之前以双重方式)。您必须为后备存储分配两倍的空间,重新计算旧存储中每个密钥的位置,复制密钥和值,删除旧存储并安装新存储。
如果你真的需要自己设计,那么你至少应该阅读一本关于数据结构和算法的书。
这里是一个简单的基于C++的矢量HashTable implementation.
- 1. 如何添加,删除,并在haspmap保存值
- 2. RxJava2组对象按ID HaspMap和排序他们
- 3. 如果没有API提供,我如何制作Chrome扩展?
- 4. 将元素添加到java 1.4中的haspmap里面的arraylist
- 5. 我们如何制作我们自己的网站API?
- 6. 我们如何找到没有任何索引的表格(PostgreSQL)
- 7. 如果我们有ARC,实现属性如何工作
- 8. 如果没有任何外部存储
- 9. 有没有我们没有任何主键的情况?
- 10. 我们如何制作投光灯
- 11. 我们如何制作多种语法?
- 12. 当我没有任何数据点(R)时,如何绘制abline()
- 13. Asp.net Web API:在控制器上没有发现任何操作
- 14. Asp.net Web API:控制器上没有发现任何操作
- 15. Facebook图形api没有制作任何fb应用程序
- 16. SoftLayer API:如果我有订单ID,是否有任何SoftLayer API返回billingItem?
- 17. symfony2如何记住我的工作没有任何表令牌?
- 18. GSA:如何证明没有任何证件结果/附件在他们
- 19. 控制器before_filter没有任何作用
- 20. 如果启用API,我们如何获得WS02 ESB令牌
- 21. OpenWeatherMap.ORG API - $ .getJSON不起作用,我没有收到任何数据
- 22. 如何为我的网站制作api
- 23. 如果Excel中没有任何活动,请关闭工作簿
- 24. 如果在表单上没有任何操作,运行函数
- 25. 如果IE上没有任何支持,我该怎么办?
- 26. File.renameTo()没有任何效果
- 27. 如何获取twitter指标?有没有任何推特API?
- 28. 如果我们从Linux文件夹复制/删除文件,是否有任何信号产生?如何陷阱?
- 29. 我们如何只用画布绘制任何图形?
- 30. 如果没有任何价值,您如何排除列显示?
你是什么意思?请具体吗?你的意思是模仿hashmap而不使用hashmap api? –
这是功课吗? – Patashu