java.util.LinkedList可以有一个循环吗?

时间:2012-07-29 06:07:11

标签: java data-structures collections

假设我使用的是单线程应用程序,java.util.LinkedList可以有一个循环吗?我在source code中看到Entry是一个私有的内部类,所以没有办法篡改它。只是想知道,在链接中找到一个循环是一个非常受欢迎的采访问题。没有人问如何设计列表以避免首先出现循环。或者我在这里误解了什么?

3 个答案:

答案 0 :(得分:1)

你是对的,因为j.u.LinkedList没有公开api来创建lops它不受支持。也许有一些反思暴力可能会发生。

我认为这个问题来自一代c程序员,他们有一个没有链表的标准库,他们经常会自己推出。此外,由于C中没有私有修饰符,因此如果您愿意,始终可以在C链接列表中创建循环。

答案 1 :(得分:1)

您可以通过提供未公开特定列表实现的接口来避免链接列表中的循环。这就是Java中发生的事情。 java.util.List是一个接口,java.util.LinkedList只是一个实现,它实际上没有暴露出主List接口之外的内容。

访谈或计算机科学课程主要对链表的理论实现感兴趣,您可以在其中以您喜欢的方式链接节点。

所以回答你的问题:不,你不能在java.util.LinkedList中有一个循环。

答案 2 :(得分:0)

可能存在对各种各样的误解。有人会问面试问题的原因有很多。这种面试问题的目的是看你的表现如何:

  1. 了解链表的概念
  2. 能够考虑编程实践中的错误
  3. 讨论相同的Java实现
  4. 第三点在我看来并不重要,因为如果你需要了解它是如何实现的,你可以明显地访问Java代码。