当前位置:  开发笔记 > 编程语言 > 正文

为什么ArrayList不实现Queue?

如何解决《为什么ArrayList不实现Queue?》经验,为你挑选了1个好方法。

也许这很愚蠢,但我必须知道答案.我抓我的头在看它的源代码,并没有看到任何理由作者实现QueueLinkedList,但决定不执行相同的操作ArrayList,而不是他们所创建单独的类ArrayDeque.



1> Boris the Sp..:

interface Queue要求,add增加了项目的结束Queue,并remove采取从的开始元素Queue.

(伪代码)

Queue q = ...
q.add("A")
q.add("B")
q.add("C")
//q is now [A,B,C]
String a = q.remove()
// a is A and q is [B, C]

现在; 使用a ArrayList,remove操作将是O(n)- 我会想象API设计者认为这种性能是不可接受的.

removeO(n)因为它需要重新索引整个列表 - B现在0C现在1.LinkedList没有这个问题,因为它使用链表数据结构; 它只是删除头节点并将该节点的子节点设置为新的头节点.

ArrayDeque是一个不同的设计来支持这一点O(1)- 因此它不是一个List.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有