假设我使用的是单线程应用程序,java.util.LinkedList 可以有一个循环吗?我在源码中看到Entry是一个私有的内部类,所以没有办法篡改。只是想知道,在链接中找到一个循环是一个非常受欢迎的面试问题。没有人问如何设计一个列表来避免首先出现循环。或者我在这里误解了什么?
问问题
165 次
3 回答
1
您可以通过提供不公开特定列表实现的接口来避免链表中的循环。这就是Java中发生的事情。java.util.List
是一个接口,java.util.LinkedList
它只是在主 List 接口之外并没有暴露太多的实现之一。
面试或计算机科学课程最感兴趣的是链表的理论实现,您可以在其中以任何您喜欢的方式链接节点。
所以回答你的问题:不,你不能在java.util.LinkedList
.
于 2012-07-29T06:16:15.830 回答
1
你是对的,因为 juLinkedList 没有公开用于创建 lops 的 api,因此不支持它。也许通过一些反思暴力,它可能会发生。
我认为这个问题来自一代 c 程序员,他们拥有一个没有链表的标准库,他们经常自己动手。此外,由于 C 中没有私有修饰符,因此如果您愿意,始终可以在 C 链表中创建循环。
于 2012-07-29T06:13:24.773 回答
0
可能存在某种误解。有人问面试问题的原因有很多。此类面试问题旨在了解您的能力:
- 了解链表的概念
- 能够考虑编程实践中的错误
- 讨论相同的Java实现
第三点在我看来并不重要,因为如果您需要了解 Java 代码是如何实现的,显然可以访问它。
于 2012-07-29T06:41:17.503 回答