要求实现add, remove and Iterator方法,怎么做呢
解决方案 »
- 经常问到forward和redirect什么区别?
- Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
- 谁知道怎么更换NimROD l&f 主题吗?
- sos!!出现个小问题,点击注册 就弹出了个 下载窗口,迅雷提示下载!是什么原因啊??
- 新手问:字符串提取问题;
- JViewPort的奇怪问题
- java小白怎么在本论坛学到全面的知识
- RMI配置问题!还是不行啊,一天了,急死了!高手们帮帮我吧
- 为什么我的appletviewer无法显示汉字
- 请问什么插件能够使ie支持用java.swing写的applet
- 改变数组(Java)
- 求助:java写的一个资源管理器的模型,但是总是出现空指针异常!!!
详情请见:
http://gceclub.sun.com.cn/Java_Docs/jdk6/html/zh_CN/api/java/util/LinkedHashMap.html
-----------肯定是实现了add, remove and Iterator方法。
如果是把一个hashmap简单的封装成一个LinkdeHashmap。那么也可以这么做:
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]);
}
Map<String, Integer> m = new HashMap<String, Integer>();
m.put("a", 1);
m.put("b", 2);
m.put("c", 3);
m.put("d", 4); List<Map.Entry<String, Integer>> list = toLinkedList(m);
System.out.println(list.size()); for (Map.Entry<String, Integer> k : list) {
System.out.println(k.getKey() + "\t" + k.getValue());
}
} public static <K, V> List<Map.Entry<K, V>> toLinkedList(Map<K, V> m) {
Set<Map.Entry<K, V>> s = (Set<Map.Entry<K, V>>) m.entrySet();
List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(s);
return list;
}
Map<String, Integer> m = new HashMap<String, Integer>();
m.put("a", 1);
m.put("b", 2);
m.put("c", 3);
m.put("d", 4); List<Map.Entry<String, Integer>> list = toLinkedList(m);
System.out.println(list.size()); for (Map.Entry<String, Integer> k : list) {
System.out.println(k.getKey() + "\t" + k.getValue());
}
} public static <K, V> List<Map.Entry<K, V>> toLinkedList(Map<K, V> m) {
Set<Map.Entry<K, V>> s = (Set<Map.Entry<K, V>>) m.entrySet();
List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(s);
return list;
}
如果要做感觉关键是选择内部持有一个hashmap还是直接继承一个hashmap
就看需要改写的方法是否很普遍了,如果大多需要改写就内部持有一个,如果仅个别方法需要深入覆写可以直接继承。
java资料太多?在网页中选中想收藏的文字(图片),右键选“收录到易载”,搞定!