java中实现一个简单HashMap(就是自己写一个简单的,不要太复杂);

 我来答
Oswin_Pzy
推荐于2017-11-25 · TA获得超过166个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:84万
展开全部
Hashmap这个结构,是从一个key到一个value的映射的集合,其中的hash是指用hash数组(也就是散列表)来存放value集合。
实现思路上,通过key的hashcode来确定value存储的位置,遇到冲突的位置就通过某个规则找下一个位置。
实现的简述:
1. value数组,Object[] values;
2. key,Object key,可能要考虑hashcode方法和equals方法的重写;
3. 冲突解决规则,下一个位置=(该位置*2+123)% values.size();
需要注意的是,values存的元素不是一个value而已,还要保留用来确定位置的hashcode值,因为在冲突的时候,Hashmap的get(key)方法需要比较hashcode来确定是不是key对应的value。

更好的办法,是values存一个链表,冲突的元素都放在链表里,在get(key)的时候遍历这个链表来获得value。再细节的东西,自己想想吧,这个写起来也不算复杂,可以动手试试。
追问
有没有代码   急需   想看看  只是理论的我一些  但代码怎么编写就不知道了  谢谢
追答
试着写写吧,遇到问题了再问吧。看现成的,会忽视掉很多细节的问题。别怕复杂,什么复杂的问题都是一个个小问题组成的,慢慢来。我也是真没空敲这些了。实在想看,百度里搜搜吧,也许会有,或者像某楼说的,看看jdk源码的实现。
duzc2
2012-12-07 · TA获得超过2512个赞
知道大有可为答主
回答量:1987
采纳率:50%
帮助的人:2049万
展开全部
我觉得JDK里面那个HashMap已经很简单了。
你看着那么多行代码,其实很多都是注释。
顶多把table扩容的功能去掉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
523072446
2012-12-07 · TA获得超过147个赞
知道小有建树答主
回答量:337
采纳率:0%
帮助的人:218万
展开全部
HashMap<String,String> map=new HashMap<String,String>();//定义

map.put("key","我要最佳答案");//给map插值

String str=map.get("key");//从map中取值
Ssytem.out.println(str)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式