Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自己的多重映射实现,存在put问题_Java_Hashmap_Multimap - Fatal编程技术网

Java 自己的多重映射实现,存在put问题

Java 自己的多重映射实现,存在put问题,java,hashmap,multimap,Java,Hashmap,Multimap,为了便于学习,我尝试制作一个MultiMap实现。(以及避免依赖其他图书馆来建立我自己的图书馆)。 它不一定是完美的 目前,我有以下几点: class MultiMap<k, v> implements Map { HashMap<k, List<v>> hMap = new HashMap<k, List<v>>(); public MultiMap () { } 我对这个有问题: @Override p

为了便于学习,我尝试制作一个MultiMap实现。(以及避免依赖其他图书馆来建立我自己的图书馆)。 它不一定是完美的

目前,我有以下几点:

class MultiMap<k, v> implements Map {

  HashMap<k, List<v>> hMap = new HashMap<k, List<v>>();  

  public MultiMap () {
  }
我对这个有问题:

  @Override
  public Object put(Object o, Object o2) {
    // will return a list
    Object toReturn = get(o); 
    if(hMap.containsValue(o)) {
      // is this even possible?
      (List<v>)(List<?>)get(o); // <<< problem: "Syntax error on token(s), misplaced construct(s)"
      // ^ next .add(o2);
    }
    // etc.
    return toReturn;
  }
@覆盖
公共对象put(对象o、对象o2){
//将返回一个列表
对象toReturn=get(o);
if(hMap.containsValue(o)){
//这可能吗?

(List)(List)get(o);//您这样定义类
类MultiMap实现Map

然后添加新方法public
List put(k键,v值)
,如下所示

public List<v> put(k key, v value) {
    List<v> list = get(key);
    if(list == null)
        list = new ArrayList<>();
    list.add(value);
    return list;
}
public List put(k键,v值){
列表=获取(键);
if(list==null)
列表=新的ArrayList();
列表。添加(值);
退货清单;
}
public List<v> put(k key, v value) {
    List<v> list = get(key);
    if(list == null)
        list = new ArrayList<>();
    list.add(value);
    return list;
}