Scott の 博客 Scott の 博客
首页
  • Data Structure and Algorithm
  • Java
  • 面试
  • Drafts
  • C++
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Scott

恋爱中
首页
  • Data Structure and Algorithm
  • Java
  • 面试
  • Drafts
  • C++
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Data Structure and Algorithm

    • Data Structure
    • 数组
    • 字符串
    • 栈与列堆
    • 链表
    • DFS and BFS
    • 动态规划
    • Untitled
    • Sorting Algorithms
    • Stack-ArrayDeque-LinkedList-区别
      • Stack,ArrayDeque,LinkedList的区别
        • 类继承树
        • 底层数据存储方式
        • 方法参照表
        • 线程安全
        • 性能选项
    • Untitled
  • Java

  • c++

  • 面试

  • Bilibili_Java

  • Python

  • All kinds of Drafts

  • High Integrity Information System

  • 左神算法课

  • 个人笔记
  • Data Structure and Algorithm
Scott
2021-11-21
目录

Stack-ArrayDeque-LinkedList-区别

# Stack,ArrayDeque,LinkedList的区别

# 类继承树

Collection继承树

  • 由继承树看出,三者都是Collection的间接实现类
  • ArrayDeque实现Deque接口,Stack继承于Vector,LinkedList实现Deque与List接口
  • Stack,ArrayDeque,LinkedList都可以作为栈使用

# 底层数据存储方式

类型 存储方式
Stack 长度为10的数组
ArrayDeque 长度为16的数组
LinkedList 链表

# 方法参照表

Stack ArrayDeque LinkedList
push(e) addFirst(e)/offerFirst(e) addFirst(e)/offerFirst(e)
pop() removeFirst()/pollFirst() removeFirst()/pollFirst()
peek() getFirst()/peekFirst() getFirst()/peekFirst()

# 线程安全

线程安全
Stack 线程同步
ArrayDeque 线程不同步
LinkedList 线程不同步

# 性能选项

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

      • grows by 50% of its size
      • All methods are synchronized (only a single thread can access it)
    • ArrayList

      • grows by 50% of its size

# 1. 需要线程同步

  • 使用Collections工具类中synchronizedXxx(), 将线程不同步的ArrayDeque以及LinkedList转换成线程同步

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

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

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

上次更新: 2021/11/21, 19:49:20
Sorting Algorithms
Untitled

← Sorting Algorithms Untitled→

最近更新
01
day01-Java基础语法
08-31
02
1
08-29
03
路线
08-01
更多文章>
Theme by Vdoing | Copyright © 2019-2022 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×