要求实现add, remove and Iterator方法,怎么做呢

解决方案 »

  1.   

      楼主说的是不是LinkedHashMap啊。
    详情请见:
    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]); 
      

  2.   

    LinkedList 有那些方法的实现,你只要把数据从map里转到list里就好。
      

  3.   

    我的意识是用hashmap作为我构造的linklist的底层数据结构,我看linklist所用的数据结构是类Entry<E>,怎么改到hashmap来呢
      

  4.   

    public static void main(String[] args) {
    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;
    }
      

  5.   

    LinkedList(Collection<? extends E> c) 那关键是将HashMap转换为Collection 具体转换可以八仙过海 甚至联接为字符串
      

  6.   

    用适配器(Adapter)写一个类实现List接口并把hashmap加入到成员参数里,然后用hashmap现有得方法实现LinkList应有得功能,这样做有点挂羊头卖狗肉,因为该linklist并非是链表数据结构,那又为什么叫linklist呢
      

  7.   

    4楼的你是实现了把一个hashmap整体转化为linklist,但是add,remove,Iterator方法如何实现呢,add,remove是要对linklist的操作
      

  8.   

    public static void main(String[] args) {
            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;
        }
      

  9.   

    这么做目的是什么呢?现有集合不能满足你的需要?
    如果要做感觉关键是选择内部持有一个hashmap还是直接继承一个hashmap
    就看需要改写的方法是否很普遍了,如果大多需要改写就内部持有一个,如果仅个别方法需要深入覆写可以直接继承。
      

  10.   

    不用自己写啊,apache的commons包就有这个类
    java资料太多?在网页中选中想收藏的文字(图片),右键选“收录到易载”,搞定!