我正在使用二叉搜索树进行 LeetCode 练习。我想知道是否有人可以解释以下方法签名:
public List<List<Integer>> levelOrder(TreeNode root) {
我对这里使用的 Java 泛型感到困惑——到底是什么 List<List<Integer>>
在这种情况下是这样说的。
我将 Java 泛型理解为“<...> 语法允许您编写可以处理多种不同类型的泛型类和方法”的一种方式,根据 https://programming.guide/java/less-than-greater-than-syntax.html
我已经在 ArrayLists 中看到过它,但是整数列表的这个特定定义在这里意味着什么?
谢谢
最佳答案
List<List<Integer>>
应理解为“整数列表的列表”。
如果您在伪代码中定义“整数列表的列表”,它可能如下所示:
[ [ 1, 2, 3 ], [], [ 4, 5 ], [] ]
安ArrayList
是一种List
。每ArrayList
是 List
,但不是每个List
是 ArrayList
。
Java 这样做的原因是因为您(通常)不希望您的代码依赖于列表的特定实现,而是依赖 contract of a list反而。
关于java - 将 Java 泛型与特定类型结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60343982/