Initialize List<List<Integer>> in Java 怎么初始化List<List<Integer>>

来源:互联网 发布:java的applet过时了吗 编辑:程序博客网 时间:2024/05/16 13:41

参考自:http://stackoverflow.com/questions/30401948/initialize-listlistinteger-in-java

               http://stackoverflow.com/questions/31754638/listinteger-cannot-be-converted-to-arraylistinteger


引:

初始代码刚开始,创建一个原始序列

List<List<Integer>> result = new ArrayList();

接下来选取子序列并反向:

List<Integer> sub = new ArrayList();re = reverse(result.get(j)); // error occurs here

reverse方法实现:

public ArrayList<Integer> reverse(ArrayList<Integer> list) {    List<Integer> newList = new ArrayList<>();    for(int i=list.size()-1; i>=0; i--) {        newList.add(list.get(i));}        return newList;    }}


出现错误:

List cannot be converted to ArrayList
原因是:reverse方法实现时声明

    List<Integer> newList = new ArrayList<>();
newList 为一个List,返回值为ArrayList。因为ArrayList是接口List的实现,ArrayList是List,List不是ArrayList。所以会报错。将返回值改成ArrayList。


怎么初始化List<List<Integer>>?

List<List<Integer>> list = new ArrayList<ArrayList<Integer>>()
报错:

ArrayList<ArrayList<Integer>> cannot be converted to List<List<Integer>>.
两个解决方案:

1)

List<List<Integer>> list = new ArrayList<List<Integer>>();

2)Java 1.7

List<List<Integer>> list = new ArrayList<>();

0 0