目录
前言
1. 什么是数组
2. 数组的定义与初始化
2.1 数组的定义
2.2 数组的初始化
3 数组的使用
3.1 数组的元素
3.2 数组相关方法
总结
在实际应用场景中,我们经常需要整理大量相同类型的数据,例如学校统计学生成绩、银行记录用户信息、书店整理在册图书等等。如果信息数量较少,我们可以通过创建多个变量逐一记录这些数据。但是当数据量增加时,这种方式会变得繁琐且低效。这时候,可以使用数组来提高工作效率和代码优化。使用数组可以将相同类型的数据按照一定的顺序储存在连续的内存空间中。
顾名思义,数组就是将一些数据组合,通过一个列表将其统一存放,元素之于列表,就类似于我们现实中 商品与货架之间的关系;
在数组之中也是如此:
书写形式:数组类型[ ] = new 数组类型[ 数组长度 ];
例:
int[] a = new int[5]; //创建一个长度为5的整形数组
char[] c = new char[10]; //定义一个长度为10的字符形数组
String[] b = new String[15]; //定义一个长度为15的字符串数组
数组的初始化分为静态初始化与动态初始化。
动态初始化:
定义数组时确定数组长度,但不直接赋值
int[] a = new int[10];
注意:动态初始化后 或 未初始化的数组,引用类型默认为null,基本数据类型元素对应为各自默认初始值 ↓
类型 | 默认值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0 |
float | 0.0f |
double | 0.0 |
char | /u0000 |
boolean | false |
静态初始化:
定义数组时直接填充元素,,根据元素个数自动确定长度
int[] b = new int[]{1,2,3,4,5};
//可以简化省去后半部分的new 数组类型[]
int[] b = {1,2,3,4,5};
前边提到过数组内的空间有连续的编号(下标),从 0 开始依次递增,而想要访问获取或者修改数组中的特定元素,就需要用到下标。
借助数组的下标我们可以准确的定位到元素的位置,从而对其进行操作:
int[] a = {1,2,3,4,5};
System.out.println(a[0]);//打印结果:1
System.out.println(a[1]);//打印结果:2
System.out.println(a[2]);//打印结果:3
System.out.println(a[3]);//打印结果:4
System.out.println(a[4]);//打印结果:5
a[4] = 0;//更改4下标元素
System.out.println(a[4]);//打印结果:0 更改成功
需要注意的是:数组长度是固定的,一个有n个元素的数组,其下标为 [ 0,n ) —— 左闭右开,如果在数组操作中输入下标大于或等于n,编译器会抛出数组越界异常!
在实际运用当中我们需要对数组进行例如排序,遍历搜索等操作,而Java中提供了丰富的方法操作数组,为我们的工作与学习提供了很大帮助。
int[] a = {1,2,3,4,5};
int b = a.length;
System.out.println(b); //输出5
注意:使用Arrays类中的方法需要再当前文件中声明:import java.util.Arrays;
1. toString():将数组转化为字符串表示
int[] a = {1,3,2,4,5};
System.out.println(Arrays.toString(a));
//输出 [1,3,2,4,5]
2. sort():对数组进行排序
对于基本数据类型:
数字类型(byte, short, int, long, float, double)按照数值大小排序。
字符类型(char)按照字符的Unicode编码排序。
对于引用类型:(涉及接口,重写等内容后期介绍)
对象类型需要实现Comparable接口,并重写compareTo()方法来定义排序规则。
如果没有实现Comparable接口,将会抛出ClassCastException异常。
int[] a = {1,3,2,4,5};
Arrays.sort(a); //进行排序
System.out.println(Arrays.toString(a));
//输出 [1,2,3,4,5]
3.equals():比较两个数组是否相等
如果两个数组都为null,则它们被认为是相等的。
如果两个数组有一个为null,而另一个不为null,则它们被认为是不相等的。
如果两个数组的长度不相等,则它们被认为是不相等的。
逐个比较两个数组中对应位置的元素,如果所有元素都相等,则它们被认为是相等的。
需要注意的是,对于数组中的引用类型元素,比较的是引用的地址是否相等,而不是对象内容的相等性。
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
int[] arr3 = {1, 2, 4};
System.out.println(Arrays.equals(arr1, arr2)); // 输出:true
System.out.println(Arrays.equals(arr1, arr3)); // 输出:false
数组是一种能够整理大量相同类型数据的数据结构,通过将数据存储在连续的内存空间中,可以提高工作效率和代码优化。数组的定义和初始化分为动态初始化和静态初始化两种方式。数组的元素可以通过下标进行访问和修改,数组长度可以通过.length
获取。Java的Arrays类提供了丰富的数组操作方法,如将数组转化为字符串表示、对数组进行排序以及比较两个数组是否相等。在实际应用中,数组的使用能够简化数据管理和操作,提高代码的可读性和可维护性。
(引用类型及其他数组相关实践下日期介绍)