使用具有特定类型的Java泛型

时间:2020-02-21 17:55:44

标签: java generics

我正在使用二进制搜索树进行一些LeetCode练习。我想知道是否有人可以解释以下方法签名:

 public List<List<Integer>> levelOrder(TreeNode root) {

我对这里使用Java泛型感到困惑-在这种情况下,List<List<Integer>>到底在说什么。

根据https://programming.guide/java/less-than-greater-than-syntax.html

,我了解Java泛型是“ <...>语法允许您编写可处理多种不同类型的泛型类和方法的一种方式”

我已经在ArrayLists中看到了它,但是这个整数列表的特定定义在这里意味着什么?

谢谢

1 个答案:

答案 0 :(得分:1)

List<List<Integer>>应该被理解为“整数列表”。

如果您在伪代码中定义“整数列表”,则可能看起来像这样:

[ [ 1, 2, 3 ], [], [ 4, 5 ], [] ]

ArrayListList的一种。每个ArrayList都是List,但不是每个List都是ArrayList

Java之所以这样做是因为(通常)您不希望您的代码依赖于列表的特定实现,而是依赖于contract of a list