java中常用数据结构

线性结构

非线性结构

一.线性结构

  1. 数组
    特点:我们都知道数组中的元素在内存中连续存储的,可以根据是下标快速访问元素,因此,查询速度很快,然而插入和删除时,需要对元素移动空间,比较慢。
    数组使用场景:频繁查询,很少增加和删除的情况。

  2. 链表
    特点:元素可以不连续内存中,是以索引将数据联系起来的,当查询元素的时候需要从头开始查询,所以效率比较低,然而添加和删除的只需要修改索引就可以了
    使用场景:少查询,需要频繁的插入或删除情况

  3. 队列
    特点:先进先出,
    使用场景:多线程阻塞队列管理非常有用


  4. 特点:先进后出,就像一个箱子,
    使用场景:实现递归以及表示式

  5. 数组与链表的区别
    数组连续,链表不连续(从数据存储形式来说)
    数组内存静态分配,链表动态分配
    数组查询复杂度0(1),链表查询复杂度O(n)
    数组添加或删除,复杂度o(n),链表添加删除,复杂度O(1)
    数组从栈中分配内存。链表从堆中分配内存。

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

相关阅读更多精彩内容

友情链接更多精彩内容