This question already has answers here:
Why can't you have a “List<List<String>>” in Java? [duplicate]
                                
                                    (6个答案)
                                
                        
                                5年前关闭。
            
                    
我正在尝试实现自己的HashMap版本。 FDor存储项,我想使用LinkedLists的ArrayList,为此,我采用“程序到接口”的方法。因此项目类型为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;
        }
    }
}

最佳答案

你能试试这个吗

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>>>();


始终编​​写接口代码,而不是具体的类。

10-07 19:11
查看更多