我必须填写以下代码
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>());
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);