对特定类型使用Java泛型
我正在用二进制搜索树练习LeetCode。我想知道是否有人可以解释以下方法签名:
public List<List<Integer>> levelOrder(TreeNode root) {
我对Java泛型的使用感到困惑——在本例中List<List<Integer>>
到底是怎么说的
我理解Java泛型是一种“语法允许您编写可以处理多种不同类型的泛型类和方法”的方式
我在ArrayList中看到过,但是整数列表的这个特定定义在这里意味着什么呢
谢谢
# 1 楼答案
List<List<Integer>>
应理解为“整数列表”如果在伪代码中定义“整数列表”,它可能如下所示:
An
ArrayList
是一种List
。每个ArrayList
都是List
,但不是每个List
都是ArrayList
Java这样做的原因是,您(通常)不希望代码依赖于列表的特定实现,而是依赖于contract of a list