hashmap中的一键多值?

package test;

import java.util.HashMap;  
import java.util.List;  
import java.util.Vector;  
  
/*这里集成HashMap建 根据 实例化 TMap的建保持一直, 值 这是一个List 接口,我们把相同建的值存在这个List里面*/  
public class TMap extends HashMap> {  
  
    private static final long serialVersionUID = 1L;  

    public List put(T key, V value) {  
        /* 判断该建是否已经存在 吗如果不存在 则放入一个新的Vector对象 */  
        if (!super.containsKey(key)) {  
            super.put(key, new Vector());  
        }  
        /* 这里获取 key对应的List*/  
        List list = super.get(key);  
         /* 将当前值,放入到 key对应的List中 */   
        list.add(value);  
        /* 返回当前 key对于的List对象*/  
        return super.get(list);  
    }  
    
      @Override
    public List put(T key, List value) {
    	// TODO Auto-generated method stub
    	return super.put(key, value);
    }
      
  
    @Override  
    public List get(Object key) {  
          
        return super.get( key ) ;   
    }  
  
  
  
    public static void main(String[] args) {  
        TMap map = new TMap() ;  
        map.put("1", "2");   
        map.put("1", "3");   
        map.put("1", "4");     
        map.put("1", "5");     
        map.put("2", "7");     
        map.put("3", "4");     
        map.put("2", "3");     
        map.put("3", "2");     
        System.out.println( map );   
    }  
}  


需要注意的是如果不重载

 public List put(T key, List value) {
    	// TODO Auto-generated method stub
    	return super.put(key, value);
    }
会出现:Name clash: The method put(T, V) of type TMap has the same erasure as put(K, V) of type HashMap but does not override it报错



你可能感兴趣的:(Java)