返回列表<列表<integer>>>



我必须填写以下代码

class Solution {
public List<List<Integer>> threeSum(int[] nums) {
}
}

所以如果我申报并归还List<List<Integer>> triples = new List<List<Integer>>();

我得到这个错误:列表是抽象的;无法实例化

如果我返回这个List<List<Integer>> trips = new ArrayList<ArrayList<Integer>>();

我得到这个error: incompatible types: ArrayList<ArrayList<Integer>> cannot be converted to List<List<Integer>>

我做错了什么?

使用:

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

ArrayList是实现List接口的类,因此可以将其分配给List变量。List-List<Integer>-的元素类型必须保持不变,因为ArrayList<ArrayList<Integer>>不是List<List<Integer>>的子类型,因此不能分配给该变量。

实例化外部List后,可以向其中添加ArrayList<Integer>实例:

trips.add(new ArrayList<Integer>());
Java泛型是不变的:
List<List<Integer>> trips = new ArrayList<List<Integer>>();

或者,更简单:

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

您可以使用创建一个新的集合,该集合包含另一个包含整数值的集合

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

如果你想获得内部列表,你可以使用这个代码

List<Integer> trip = trips.get(0);

最新更新