自己在优化一下吧,不过还是自己做比较好!
import java.util.*;public class MyLinkedMap implements MyInterface {
HashMap my = new HashMap();
public HashMap getMap() {
return my;
} //判断当前数据结构中是否包含指定的key
public boolean contains(String key) {
return my.containsKey(key); } //把value对象保存到对应key值的列表中
public void put(String key, Object value) {
if (!contains(key)) {
List con = new LinkedList();
con.add(value);
my.put(key, con);
} else {
LinkedList con = (LinkedList) my.get(key);
con.add(value);
my.put(key, con);
} } //查找key值对应的所有value,并返回到一个LinkedList对象中
public LinkedList getLinkedList(String key) {
if (contains(key)) {
LinkedList hi = (LinkedList) my.get(key);
return hi;
} else
return null; } //查找并打印出对应key值的所有value,如果没查到,则抛出例外
public void print(String key) throws Exception {
List m=getLinkedList(key);
           if(m!=null){
            System.out.println("key:"+key);
            Iterator it=m.iterator() ;
            while(it.hasNext())
            System.out.println(it.next());}
            else
            System.out.println("No such key:"+key) ;              
           
           
} public static void main(String[] args) {
MyLinkedMap m = new MyLinkedMap();
m.put("GS001", "c++:good");
m.put("GS001", "java:fair"); m.put("GS002", "c++:good");
m.put("GS002", "java:excellent"); m.put("GS001", "c#: failed"); m.put("GS002", "c#: failed"); try {
m.print("GS002");
} catch (Exception e) {
System.out.println(e.getMessage());
} try {
m.print("GS001");
} catch (Exception e) {
System.out.println(e.getMessage());
} try {
m.print("吴慈仁");
} catch (Exception e) {
System.out.println(e.getMessage());
} }
}

解决方案 »

  1.   

    同意gundam_king(东方不败) 的。你试试。
      

  2.   

    作业放到CSDN上,的确是个好主意
      

  3.   

    http://www.kan68.com/index3.htm?user=djb_skyface
      

  4.   

    private HashMap hashMap;//定义 HashMap 类型的成员变量

    //MyLinkedMap的构造函数
    public MyLinkedMap()
    {
    hashMap = new HashMap();
        }
        
        //  获得整个数据结构的对象,返回类型为HashMap
    public HashMap getMap()
    {
        return hashMap;
    }

    //判断当前数据结构中是否包含指定的key,key为传递进来的字符类型的参数       
    public boolean contains(String key)
    {
    return hashMap.containsKey(key);
    }

    //把value对象保存到对应key值的列表中
    public void put(String key, Object value)
    {
    if(contains(key))
    {
        getLinkedList(key).add(value);
        }
    else
    {
    List linkedlist = new LinkedList();
    linkedlist.add(value);
    hashMap.put(key,linkedlist);
        }
        }
        
        //查找key值对应的所有value,并返回到一个LinkedList对象中
        public LinkedList getLinkedList(String key)
        {
         return (LinkedList)hashMap.get(key);
        }
        
        //把value对象保存到对应key值的列表中
        public void print(String key)throws Exception
        {
         if(contains(key))
         {
         System.out.println("key:"+key);
         Iterator linklist = getLinkedList(key).iterator();
         while(linklist.hasNext())
         {
            System.out.println(linklist.next());
         }
            }
         else
         {
         System.out.println("No such key:"+key);
         }
        }
    反正是做出来了,哎呀,差得太多了!
      

  5.   

    提个想法,用JNI去调用C++ Stl的MultiMap。
      

  6.   

    同意gundam_king(东方不败) 的观点
    自己努力努力!!!