在实现HashMap时:尝试编程到接口时类型不匹配

时间:2014-05-08 18:09:29

标签: java arraylist

我正在尝试实现自己的HashMap版本。 FDor存储项目我想使用LinkedLists的ArrayList,并且我正在采取&#34;编程接口&#34;做法。因此,项目类型为List <List<MyEntry<k,v>>>

但是

我想通过ArrayList< LinkedList< MyEntry< k,v>>>()

实例化它

我的代码有什么问题,我收到编译错误

类型不匹配:无法从ArrayList< LinkedList< MyHashMap1< k,v>.MyEntry<k,v>>>转换为List<List<MyHashMap1<k,v>.MyEntry<k,v>>>

我的问题是

如果我将类型更改为List< LinkedList< MyEntry< k, v>>> 它有效但List< LinkedList< MyEntry< k, v>>>不是%100接口,LInkedList不是接口

package maps;
import java.util.ArrayList;
import java.util.List;
import java.util.LinkedList;
public class MyHashMap1<k,v> {
    //Type mismatch: cannot convert from ArrayList<LinkedList<MyHashMap1<k,v>.MyEntry<k,v>>> to List<List<MyHashMap1<k,v>.MyEntry<k,v>>>
    List <List<MyEntry<k,v>>> items = new ArrayList<LinkedList<MyEntry<k,v>>>(); 
    public class MyEntry<a,b>{
        a key;
        b value;

        public MyEntry(a key,b value){
            this.key = key;
            this.value = value;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

你能试试这个

吗?
List<LinkedList<MyEntry<k,v>>> items = new ArrayList<LinkedList<MyEntry<k,v>>>();

如果ArrayList可以接受任何类型的List

,请尝试此操作
List<List<MyEntry<k,v>>> items = new ArrayList<List<MyEntry<k,v>>>(); 

始终编写接口而非具体类。