在Java中初始化List<List<Integer>>

26

在 Java 中,我该如何初始化 List<List<Integer>>

我知道 List 是一个接口,可以使用 ArrayListLinkedList 来实现 List<Integer> list = new ArrayList<Integer>(),但是当我初始化 List<List<Integer>> list = new ArrayList<ArrayList<Integer>>(); 时,会出现不兼容类型的错误:

ArrayList<ArrayList<Integer>> cannot be converted to List<List<Integer>>.

那么我该怎么做呢?


我想把你需要的称为“声明”,而不是“初始化”。请参见此链接:https://dev59.com/j2025IYBdhLWcg3wEhnr - ZhaoGang
4个回答

44

使用

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

或者自Java 1.7以来

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

2
谢天谢地,这背后没有解释,所以我们可以学习? - Kick Buttowski
问题是如何继续,所以我会让OP搜索诸如“不变性”和“钻石操作符”之类的术语 :) - Reimeus
3
如何以及为什么这个方法可行的一点解释可以帮助很多人。 - Abhishek saharn

8

你可以将其定义为:List<List<Integer>> list = new ArrayList<List<Integer>>();

当定义内部的List时,你需要注意初始化它为ArrayList<Integer>


2
您可以将其定义为 List<List<Integer>> list = new LinkedList();。此代码涉及到 IT 技术方面的内容。

1
您可以将其初始化为:

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

请注意,内部List必须是List接口的实现,例如ArrayList。
由于List是一个接口,因此不能拥有List类型的对象本身。

谢谢Suraj,我正在修复尖括号的HTML,而你正在编辑评论。 - Shravan Bejini
OP想要初始化List<List<Integer>>,而不是List<ArrayList<Integer>>。 - Mario Varchmin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接