首页 > 其他分享 >数组的概念使用

数组的概念使用

时间:2022-12-16 11:40:13浏览次数:40  
标签:存储 下标 元素 概念 数组 使用 Java 内存地址

数组的语法:

1、 Java语言中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是object。

2、 数组是一个容器,可以容纳多个元素。(数组是一个数据的集合。)

3、 数组因为是引用类型,所以数组对象在堆内存当中。

4、 数组当中如果存储的是“Java对象“的话,实际上村塾的是对象的”引用(内存地址)“,数组中不能直接存储“Java对象“。

5、 数组一旦创建,在java中规定长度不可变。

6、 所有的数组对象都有length属性(java自带),用来获取数组中元素的个数。

7、 Java中的数组要求数组中元素的类型统一。

8、 数组在内存里面储存的时候,数组中的元素内存地址(存储的每一个元素都是有规则的挨着排列的)是连续的。内存地址连续是数组存储元素的特色。数组实际上是一种简单的数据结构。

9、 所有的数组都是拿“第1有一个小方框的内存地址(首元素的内存地址)“作为整个数组对象的内存地址。

10、 数组中每一个元素都是有下标的,从0开始递增。下标非常重要,对数组中的元素存取时都需要下标来进行。

数组的优缺点:

优点:查询/查找/检索某个下标上的元素时效率极高。可以说是查询效率最高的一个数据结构。

为什么检索效率高?

第一:每一个元素的内存地址值在空间存储上是连续的。

第二:每一个元素类型相同,所以占用空间大小一样。

第三:知道第一个元素的空间地址值,知道每一个元素占用空间的大小,又知道下标,所以通过数学表达式就可以计算出某个下标上元素的内存地址。直接通过内存地址定位元素,所以数组的检索效率是最高的。

数组中存储100个元素,或者存储100万个元素,在元素查询/检索方面,效率是相同的,因为数组中元素查找的时候不会一个个找,是通过数学表达式计算出来的。(算出一个地址值,直接定位。)

缺点:

第一:由于为了保证数组中每个元素的内存地址连续,所以在数组上随机删除或者增加元素的时候效率较低,因为随机增删元素会涉及到后面元素统一向前或者向后位移的操作。

第二:数组不能存储大量数据,因为很难在内存空间上找到一块特别大的连续的内存空间。

注意:对于数组中最后一个元素的增删,是没有效率影响的。


标签:存储,下标,元素,概念,数组,使用,Java,内存地址
From: https://blog.51cto.com/u_15742597/5946995

相关文章

  • Python的Django框架中forms表单类的使用方法详解
    FormForm的验证思路前端:form表单后台:创建form类,当请求到来时,先匹配,匹配出正确和错误信息。Django的Form验证实例:创建project,进行基础配置文件配置settings.pysettings.py之c......
  • CMD使用记录
    #切换cmd编码为utf-8(临时切换,永久切换需要改注册表)chcp65001 #重命名renD:\s.inis.txt#计算机名setCT=%computername%#打印到文件echo%computername%>D:\TAO.txt......
  • Linux命令iostat使用,输出的参数分析
    Linuxiostat命令编译iostat源码位于sysstat中,编译其会在bin目录下得到iostat可执行文件;iostat命令参数解析iostat命令输出解析iostat[-c][-d][-h][-N][......
  • 史上最简洁Kotlin版EventBus的使用教程
    EventBus简介EventBus是一种用于Android的事件发布-订阅总线。他简化了应用程序内各个组件之间进行通信的复杂度。​​GitHub-greenrobot/EventBus:EventbusforAndroi......
  • 如何在windows中安装和使用Linux
    按下键盘的win+x键打开应用和功能,按如图进行下面操作重启电脑后用管理原身份打开cmd窗口,输入以下命令:(官方链接:https://learn.microsoft.com/zh-cn/windows/wsl/basic-......
  • 如何使用CSS提高页面性能
    一、前言大家好,我是CoderBin,每一个网页都离不开css,但是很多人又认为,css主要是用来完成页面布局的,像一些细节或者优化,就不需要怎么考虑,实际上这种想法是不正确的作为页面......
  • 2022-12-15 成交量基础概念
    1. 突破前期大量的高点,说明那里的套牢盘被解放。 例1:  例2:      例3: ......
  • 使用 System.Text.Json 时,如何处理 Dictionary 中 Key 为自定义类型的问题
    在使用System.Text.Json进行JSON序列化和反序列化操作时,我们会遇到一个问题:如何处理字典中的Key为自定义类型的问题。背景说明例如,我们有如下代码: //定义一个......
  • Java8之list.stream的常见使用
    本文转自 https://blog.csdn.net/jhgnqq/article/details/123679622感谢楼主分享importorg.junit.Before;importorg.junit.Test;importjava.util.Arrays;import......
  • 你是如何使用React高阶组件的?
    HighOrderComponent(包装组件,后面简称HOC),是React开发中提高组件复用性的高级技巧。HOC并不是React的API,他是根据React的特性形成的一种开发模式。HOC具体上就是一个接受......