【问题标题】:Java LinkedList: uses both List and Queue interface? [duplicate]Java LinkedList:同时使用 List 和 Queue 接口? [复制]
【发布时间】:2020-06-05 22:26:58
【问题描述】:

我意识到Java中的LinkedList除了实现List接口外,还实现了Queue接口(通过:Deque)。

参考下面,sn-p取自Javadoc:

为什么是这样设计的,就是Queue也是List?那么这是否意味着LinkedList 既是Queue 又是List

【问题讨论】:

  • @SotiriosDelimanolis:感谢您指出这些链接,但是,为什么LinkedList 不能只使用List,这是本意(List 实现)。拥有两个接口赋予它两种不同的功能,这就是我的困惑。
  • 第一个重复地址中接受的答案。
  • 这里的很大一部分问题是您对单词的选择。它不“使用”这些接口,它实现它们。使用它们的是调用应用程序,LinkedList 为应用程序提供了一个选项,应用程序可以设置该选项以更好地表达列表的实际用途。你声称能力不同的说法是错误的。 Queue 的功能是List 功能的子集。

标签: java collections linked-list


【解决方案1】:

链表自然是一个队列。事实上,即使在 Java 之前,如果您想要一个没有固定条目数量限制的队列,通常选择链表结构。

链表有一个顺序,在尾部添加东西是 O(1),从头部移除东西是 O(1)。您可以根据需要继续添加条目。总而言之,正是您在队列中所需要的。

如果链表不能轻易地提供“队列”的接口,那将是一个奇怪的定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 2019-03-15
    相关资源
    最近更新 更多