java - 从 Java 中的 LinkedList 构造函数实例化 List

标签 java list linked-list

我需要实现一个返回类型为 List<List<String>> 的函数我尝试了很多方法来实例化要返回的变量:

这不起作用:

List<List<String>> result = new LinkedList<LinkedList<String>>();

error: incompatible types: LinkedList<LinkedList<String>> cannot be converted to List<List<String>>

最后,这成功了:

List<List<String>> result = new LinkedList<>();

编译器对此很满意,并且代码运行良好。

但是,我不明白为什么第一个语句不起作用而第二个语句起作用。

有人可以解释一下吗?

最佳答案

第一种方式在语法上是错误的,正确的是

    List<LinkedList<String>> result = new LinkedList<LinkedList<String>>();

在第二种情况下,您可能使用 JDK 7 或 +,其中使用菱形运算符进行类型推断。

要理解,请完整阅读Type Inference for Generic Instance Creation

例如,考虑以下变量声明:

Map<String, List<String>> myMap = new HashMap<String, List<String>>();

In Java SE 7, you can substitute the parameterized type of the constructor with an empty set of type parameters (<>):

Map<String, List<String>> myMap = new HashMap<>();

关于java - 从 Java 中的 LinkedList 构造函数实例化 List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015809/

相关文章:

java - 不同列的网格颜色不同

python - 索引如何在具有重复项的列表中工作?

java - 使用链表实现队列,出现与我的 Node 类相关的错误

java - 在 CentOS 5.10 上使用 Opscode 说明书安装 Tomcat6

java - 如何向 Feign RequestInterceptor 传递参数?

python - 在Python中检查两组 `list type`或 `set type`之间的相同性

postgresql - 在 Postgres 中实现一个像链表一样的排序列

java - 如何在链表中实现泛型 <E>?

java - 数据库字符集 UTF16 未显示正确的字符

css - list-style-none + background-image = margin 不起作用?