java - 将 Java 泛型与特定类型结合使用

标签 java generics

我正在使用二叉搜索树进行 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 。每ArrayListList ,但不是每个ListArrayList

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

关于java - 将 Java 泛型与特定类型结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60343982/

相关文章:

java - Android通知不断启动应用程序

java - 从java中的参数创建数组

c# - 泛型继承 c#

java - 为什么 @Query 注解的方法需要主体?

java - JEdi​​torPane.setPage() 方法在运行时仅工作一次

java - 如何在 Controller 之间传递 ModelAttribute?

java - 使用proguard保留特定的注释

generics - 在 F# 中使用泛型创建 EnumArray 类型

list - 如何在 Dart 中合并两个列表?

Java:泛型中的不同接口(interface)