Java 数组的优势与局限

Java 数组的优势与局限

本篇文章只讲数组的优势与局限,若要了解数组的定义可以参考 Java 数组的定义及使用

数组是 Java 语言的基本知识之一,在深入学习 Java 基础后,我们都知道那些容器,在之后,在我们学习、工作的过程中基本就是使用容器了,很少使用数组,那么为什么还要有数组呢?

我们知道数组与其他种类的容器之间的区别有三方面:效率、类型和保存基本类型的能力(自从 jdk1.5 新增泛型后,保存类型的区别已经不大了),下面就通过分析数组的优缺点来解释我们在有容器的情况下,为什么还要使用数组。

数组的优点

  1. 随机访问的效率很高。根据下标访问元素效率高(元素连续分配空间)
  2. 数组可以保存若干个数据

数组的缺点

  1. 数组长度是固定的不能变的,不能自动扩容
  2. 数组进行元素的删除和插入操作的时候,效率比较低。需要移动大量的元素
  3. 数组元素的类型只能是一种
  4. 数组通过内容查找元素的效率是比较低的,需要逐个比较
  5. 数组的元素是连续分配的,所以在 heap 内存中必须找到连续的内存空间才能容纳数组的所有数据。对内存要求高一些
  6. 数组没有提供任何的封装,所有对元素的操作,都是通过自定义的方法实现的,对数组元素的操作比较麻烦

总结

  • 数组较容器,最大的优点就是效率。在 Java 中,数组是一种效率最高的存储和随机访问对象引用序列的方式,数组就是一个简单的线性序列,这使得元素访问非常快速,无论使用哪种类型的数组,数组标识符其实只是一个引用,指向在堆中创建的一个真实对象,这个(数组)对象用以保存指向其他对象的引用。数组是第一级对象,可以作为数组初始化语句的一部分隐式地创建此对象,或者用 new 表达式显示地创建。

  • 数组的优点是效率高,但为此,所付出的代价就是数组对象的大小被固定。这也使得在工作中,数组并不实用。所以我们应该优选容器,而不是数组。只有在已证明性能成为问题的时候,并且确定切换到数组对性能提高有帮助时,才应该将项目重构为使用数组。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值