java中数组和链表的区别

					论数组和链表

数组和链表是我们最常见也是最常用的数据结构,具体要选择哪种数据结构要根据我们的实际情况而定。我们先了解一下在内存和磁盘中两种数据结构的存储方式
内存:
在这里插入图片描述

磁盘:
在这里插入图片描述
磁盘的存储容量和内存的存储容量就类似于excel中的一个个表格,而数组和链表就存储在其中。当我们正常用的时候可以,但是一旦我们对其中的数据进行增删改查,就会导致其中的某一行会只剩下一个个的片段。大类型的数据无法进行存储。导致我们的存储空间越来越小。
当磁盘来说会使存储空间越来越小,但对内存来说确实内存泄漏!是一件很难受的事情!所以合理的使用数据结构是很重要的。
言归正传:数组和链表的区别。
主要分析两种数据结构时间复杂度

  • 有序数组
    add(增):O(n)+O(log(n))
    del(删):O(n)+O(log(n))
    update(改):O(n)+O(log(n))
    select(查):O(1)(按照下标查找) O(log(n)(按照数值查找)
  • 无序数组
    add(增):O(n) (开辟新空间之后移动)
    del(删):O(n) (包括查找和删除共O(n)n为数组长度的大小)
    update(改):O(n)(这个n的数量级小)
    select(查):O(n)(这个n的数量级小)
  • 有序链表
    add(增):O(n)
    del(删):O(n)
    update(改):O(n)
    select(查):O(n)
  • 无序链表
    add(增):O(1)
    del(删):O(n)
    update(改):O(n)
    select(查):O(n)
    所以在利用数据结构对数据进行管理时应该充分考虑数据的特点,选出比较合适的数据结构。在平常的应用中链表一般是没有顺序的,因为无序的链表更好进行操作,而对于数组要注意数组的长度。对于一些类型规范语言来说,对数组的约束是比较严格的。容易因为忘记数组长度的原因的出现数组越界的错误。

第一次写博客,继续加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值