数组的简单介绍


前言

数组是代码中一次性声明大量的用于存储数据的变量,用于存储多个相同类型数据的存储模型。数组有多种维度,常用的数组为一维数组和二维数组。一维数组表示的是集合({值1,值2,值3}),格式为arr[长度]。二维数组表示的是矩阵形状{值1-1,值1-2,值1-3

                               值2-1,值2-2,值2-3},格式为arr[长][高]

一、数组的定义格式

格式一:数据类型 [ ]   变量名 范例: int[ ]   arr 定义了一个int类型的数组,数组名是arr的数组

格式二:数据类型    变量名[ ] 范例: int   arr[ ] 定义了一个int类型的变量,变量名是arr的数组

二、数组的初始化

Java中的数组必须先初始化,然后才能使用。所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。

1.动态初始化

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值 。动态初始化的格式:

数据类型 [ ] 变量名 =  new  数据类型[数组长度;其中初始化时确定数据类型、变量名、数组长度,分配数组的存储位置,数组的内容由之后的程序确定。

2.静态初始化

静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。静态初始化的格式:

数据类型 [ ] 变量名 =  {元素值1,元素值2,....元素值n};其中初始化时确定数据类型、变量名、各元素初始值,系统根据确定的元素分配数组的存储位置。

三、数组元素访问

对数组进行初始化后,就可以对数据进行访问,数组变量访问方式格式:数组名。数组内部保存的数据的访问方式格式:数组名[索引]。那什么是索引?

索引

索引是数组中元素的编号方式,其作用是索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名。索引有一下特征:

特征①:索引从0开始。特征②:索引是连续的。特征③:索引逐一增加,每次加1

四、Java中内存分配

Java 程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

在每个数组初始化时就为数组分配了内存空间,初始化时在栈内存中分配一个名为变量名的存储内存,在堆内存中开辟一片内存空间存储数组各元素的值。变量名的值为堆内存内内存空间的存储地址。当使用动态初始化数组时,堆内存内的个元素的值为数组的数据类型的默认值。整数的默认值为0,浮点数的默认值为0.0,布尔值的默认值为false,字符型的默认值是空字符,引用数据类型默认值是null。

 

五、数组的常见操作

了解完数组的基本情况过后,可以对数组进行一些操作,常见的对数组的操作为

1遍历

遍历是对数组内每一个元素进行一次访问,常见的遍历操作是使用循环对数组遍历,因为数组的索引是连续且逐一增加,控制循环语句自加一可以使得每次循环表示一个索引。

//从0开始遍历输出一个数组长度为5的数组
for(int x=0; x<5; x++) {    System.out.println(arr[x]);}

 2获取数组元素数量

在使用循环遍历数组时,要控制循环的次数,一般的循环次数都是数组的长度,但是不能每次都人工敲定控制循环的次数。可以使用数组的length属性,arr.length表示循环的长度,例

int arr[] = {1,2,6,8,9,5};
arr.length = 6;arrl.length能自动获取数组的长度,将循环条件设置为i<arr.length可以确保循环的次数不会超出数组的长度。遍历的通用格式:

int[] arr = {……};
for(int x=0; x<arr.length; x++) {    arr[x]	 //对arr[x]进行操作}

 3获取最值

对数组常见的操作还包括获取最值、数组求和、求平均值等。都是通过对数组内元素遍历访问得到需要的数据。获取最值的思路为:

1:定义一个变量,用于保存最大值(或最小值)

2:取数组中第一个数据作为变量的初始值

3:与数组中剩余的数据逐个比对,每次比对将最大值保存到变量中

4:循环结束后打印变量的值

int[] arr = {12,45,98,73,60};
int max;
int max = arr[0];
for(int x=1; x<arr.length; x++) {    
    if(arr[x] > max) {        
        max = arr[x];    
    }
}
System.out.println("max:"+max);

获取其他的值与获取最值相似,简单修改可以使用。

 数组操作的常见问题

1索引越界:

访问了数组中不存在的索引对应的元素,造成索引越界问题

2空指针异常:

访问的数组已经不再指向堆内存的数据,造成空指针异常。null:空值,引用数据类型的默认值,表示不指向任何有效对象。


总结


以上就是今天要讲的内容,本文仅仅简单介绍了数据的基本格式的使用,简单讲解了数组的基本操作和操作中常见的小问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值