java 数组初始化汇总_java数组的初始化及操作详解

数组的基本概念

如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下:

int i1, i2, i3, ... i100;

但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次。

其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配,而数组的定义语法有如下两类。

数组动态初始化:

声明并开辟数组:

数据类型 [] 数组名称 = new 数据类型[长度];

数据类型 [] 数组名称 = new 数据类型[长度];

分布进行数组空间开辟(实例化)

| Tables | Are |

| ------------- |:-------------?

| 声明数组: | 数组类型 数组名称[] = null; | | | 数组类型 [] 数组名称 =null; | | 开辟数组空间: | 数组名称 =new` 数组类型[长度]; |

那么当数组开辟空间之后,就可以采用如下的方式的操作:

数组的访问通过索引完成,即:“数组名称[索引]”,但是需要注意的是,数组的索引从0开始,所以索引的范围就是0 ~ 数组长度-1,例如开辟了3个空间的数组,所以可以使用的索引是:0,1,2,如果此时访问的时候超过了数组的索引范围,会产生java.lang.ArrayIndexOutOfBoundsException 异常信息;

当我们数组采用动态初始化开辟空间后,数组里面的每一个元素都是该数组对应数据类型的默认值;

数组本身是一个有序的集合操作,所以对于数组的内容操作往往会采用循环的模式完成,数组是一个有限的数据集合,所以应该使用 for 循环。

在 Java 中提供有一种动态取得数组长度的方式:数组名称.length;

java编程中,我们知道程序=算法+数据结构,而最基本的数据结构就是数组;相同的数据类型的元素的集合,我们称之为数组;以下对数组的初始化及操作做简单介绍。

声明数组:声明数组时,我们需要设定数组元素的类型,数组中的元素是具有相同数据类型的;然后需要一个变量或者叫引用来指向此数组,如int[] arr 或者int arr[],两个都可以。声明数组:声明数组时,我们需要设定数组元素的类型,数组中的元素是具有相同数据类型的;然后需要一个变量或者叫引用来指向此数组,如int[] arr 或者int arr[],两个都可以。

初始化数组:

有两种方式进行初始化,一是直接new,二是直接赋值

1c97c77b8577134f0293f77a70429908.png

数组的访问:获取数组长度

调用数组的length属性即可获取数组长度。

bd6d9ec685b22d7855ed5e39d63feb5d.png

数组的访问:通过下标访问数组元素

注意下标是从0开始到length-1,访问方式为arr[i],i为下标。

73c564573a1535b9ff6247f609675448.png

数组的访问:遍历数组元素

以数组元素下标为递增变量,循环输出即可遍历。

60cd90e987660333c8e778847694cc48.png

数组的复制:System.arraycopy()

使用封装的System.arraycopy()方法即可对当前数组进行复制操作。

6a24da7ac5c6fa6104de33c91488cbd9.png

eb2fa1600f5ecffc9639cd53c52d1d51.png

数组的复制:Array.copyOf()

使用java.util.Array类的此方法,也可以实现数组复制,此方法有以下特点:

1.如果newLength大于原数组长度,则用0或者null进行补充,相当于扩容;

2.如果newLength小于原数组的长度,则截取;

1e5f9b0c4a3582675dc543a98f5192c0.png

数组的排序:

常见的数组排序有插入排序,冒泡排序以及快速排序法,这里介绍最常用的冒泡排序法,即相邻两个元素进行比较,大的元素交换到后,小的交换到前,循环以此类推。

1ad121d5dbefe55a4531d572620d5fcc.png

数组的排序:Arrays.sort()

JDK中提供的Arrays.sort()方法,也可以进行数组排序。

019a6fe7f3862915d083e0fe9cd70f64.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值