HashMap经常在我们的应用程序中出现,它把key与value通过hash code映射起来,并存放到table中。在日常应用中,如果有这样的场景,就是基于HashMap封装成一个LinkedList,那么如何实现link的特性,还真是值得想想。在此先买个关子,欢迎大家积极参与讨论。
评论
cuiyi.crazy 2008-09-10   回复
tigers 写道
看来大家没理解上面的意思,上面是说把HashMap封装成List,而不是说把HashMap变成linked map。
有两种方法可以试试,一是把map<key, value>中的value再封装一次:{value, next},并使next指向下一个note的key,这个node就变成了linked list中的下一个节点了。
还有一个是将map中的所有keys组成一个list,这样相当于对key作链接,再由key到map中找到value.


一个list,一个map,凑在了一起,不就是linkedhashmap嘛;
反正我是自己实现的数据结构,一个list/array对象,一个map对象,然后索引参照;不过我不知道linkedhashmap现在也发现自己实现是合理的
jasoncao1985 2008-03-26   回复
果然是把简单的东西复杂化!
ispring 2008-03-26   回复
你是不是吃饱撑着了
tigers 2008-03-24   回复
看来大家没理解上面的意思,上面是说把HashMap封装成List,而不是说把HashMap变成linked map。
有两种方法可以试试,一是把map<key, value>中的value再封装一次:{value, next},并使next指向下一个note的key,这个node就变成了linked list中的下一个节点了。
还有一个是将map中的所有keys组成一个list,这样相当于对key作链接,再由key到map中找到value.
linken 2008-03-15   回复
Map map=new HashMap();
Object[] keyArray = (Object[]) map.keySet().toArray();
Object[] valueArray = (Object[]) map.values().toArray();

Map mapReturn = new LinkedHashMap();
for (int i = 0; i < keyArrayLength; i++)
  {
     mapReturn.put(keyArray[i], valueArray[i]);
     
   }

这样就可以从一个hashmap封装成一个LinkdeHashmap了。
bookong 2008-03-14   回复
JDK1.4 后就有LinkedHashMap了吧?
codeutil 2008-03-13   回复
难道你说的不是LinkedHashMap???

http://gceclub.sun.com.cn/Java_Docs/jdk6/html/zh_CN/api/java/util/LinkedHashMap.html
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

tigers
搜索本博客
最近加入圈子
存档
最新评论