使用列表列表时难以使用subList

时间:2015-04-20 04:14:26

标签: java list

public List<List<Integer>> splitList(
        List<Integer> values) {


    List<List<Integer>> newList = new ArrayList<ArrayList<Integer>>();
    //Type mismatch: cannot convert from ArrayList<ArrayList<Integer>> to List<List<Integer>>

    while (values.size() > numValuesInClause) {
        List<Integer> sublist = values.subList(0,numValuesInClause);
        List<Integer> values2 = values.subList(numValuesInClause, values.size());   
        values = values2; 

        newList.add( sublist);
    }
    return newList;
}

我想传入一个整数列表,并将其拆分为多个小于numValuesInClause的列表。

我在使用ArrayList<Integer>List<Integer>

之间进行各种转换/转换时遇到此代码有困难

例如List.subList(x,y)会返回List<E>

在这里工作的最佳方式是什么?

此处显示的当前代码对我来说是最有意义的,但显示的是编译错误。

1 个答案:

答案 0 :(得分:3)

使用:

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

而不是:

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

原因是你要实例化一个泛型元素ArrayList的具体List<Integer>>