2022-02-16 「数据结构刷题」

瓦伦廷恩日的题目真的对single dog非常不友好了,看题目时间复杂度要log n,也很清晰地知道要用二分法做,就不记录了。

今天这题也是简单题,链表反转,没有花里胡哨的算法,就是通过压栈的思路,把链表倒序。递归不太熟悉,Stack,ArrayDeque,LinkedList都可以作为栈使用,所以这里具体记录下各自的入栈出栈方法和对应的性能情况。

类继承树


类继承树

由继承树看出,三者都是Collection的间接实现类。

ArrayDeque实现Deque接口,Stack继承于Vector,LinkedList实现Deque与List接口。

区别

底层数据存储方式
入/出/查看方法
线程安全

性能选项

通常情况下,不推荐使用Vector以及其子类Stack

1.需要线程同步:使用Collections工具类中synchronizedXxx()将线程不同步的ArrayDeque以及LinkedList转换成线程同步。

2.频繁的插入、删除操作:LinkedList

3.频繁的随机访问操作:ArrayDeque

4.未知的初始数据量:LinkedList

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一。通用数据结构:数组,链表,树,哈希表通用数据结构通过关键字的值来存储并查找数据,如报表,合同,记录,业绩等数据...
    学编程的小屁孩阅读 229评论 1 1
  • java中常用的数据结构 1:Array 数组 固定大小,数组的大小是初始化时决定无法修改的数值。 强类型,存储数...
    凯睿看世界阅读 769评论 2 1
  • List list(表)继承Collection(集合)接口,主要有Arraylist,LinkedList和Ve...
    fredal阅读 1,898评论 2 17
  • 前言 Java中集合大家族的成员实在是太丰富了,有常用的ArrayList、HashMap、HashSet,也有不...
    AndryYu阅读 1,510评论 0 1
  • 栈 栈: 限定仅在表尾进行插入和删除操作的线性表; 后进先出(LIFO)。 在表尾进行操作,表尾是栈顶;最新进栈的...
    IAM四十二阅读 1,378评论 0 2

友情链接更多精彩内容