【问题标题】:using Java Generics with a specific type使用具有特定类型的 Java 泛型
【发布时间】:2020-02-21 17:55:44
【问题描述】:

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

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

我对这里使用 Java 泛型感到困惑——在这种情况下 List&lt;List&lt;Integer&gt;&gt; 到底在说什么。

根据https://programming.guide/java/less-than-greater-than-syntax.html,我将 Java 泛型理解为“<...> 语法允许您编写可以处理多种不同类型的泛型类和方法”的一种方式@

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

谢谢

【问题讨论】:

  • 这是一个整数列表的列表
  • List&lt;List&lt;Integer&gt;&gt; 可以解析为List&lt;A&gt;,其中AList&lt;Integer&gt;。所以你所拥有的是一个包含整数列表的列表。
  • @littlebenlittle 和 Joelius 谢谢!

标签: java generics


【解决方案1】:

List&lt;List&lt;Integer&gt;&gt; 应该读作“整数列表”。

如果您在伪代码中定义“整数列表”,它可能如下所示:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多