我正在尝试实现自己的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;
}
}
}
答案 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>>>();
始终编写接口而非具体类。