JAVA数组
一. 数组的定义及数组定义格式
1.什么是数组?
数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。
2.数组的定义格式
(1)第一种
格式:数据类型[] 数组名
int[] arr;
double[] arr;
char[] arr;
(2)第二种
格式: 数据类型 数组名[]
int arr[];
double arr[];
char arr[];
二.数组的初始化
1.数组的静态初始化
(1)什么是静态初始化?
在创建数组时,直接将元素确定。
(2)静态初始化的格式
完整格式版:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
int[] a = new int[] {1, 2, 3};
简化版格式:
数据类型[] 数组名 = {元素1,元素2,…};
int[] a = {1, 2, 3};
2.数组的动态初始化
(1)什么是动态初始化?
数组动态初始化就是只给定数组的长度,由系统给出默认初始化值。
(2)动态初始化的格式
格式:
数据类型[] 数组名 = new 数据类型[数组长度];
int[] a = new int[3];
动态初始化的格式详解:
-
等号左边:
-
int:数组的数据类型
-
[]:代表这是一个数组
-
arr:代表数组的名称
-
-
等号右边:
-
new:为数组开辟内存空间
-
int:数组的数据类型
-
[]:代表这是一个数组
-
3:代表数组的长度
-
三.数组元素的访问
1.什么是索引?
每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
2.索引格式
格式:
数组名[索引];
public class Demo {
public static void main(String[] args) {
int[] shuzu = new int[3];
//输出数组名
System.out.println(arr);
//输出数组中的元素
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
四.数组操作中两个常见的问题
1.索引越界
public class Demo {
public static void main(String[] args) {
int[] a = new int[3];//定义一个数组
//这里定义数组的长度为3,索引的值为0~2.
System.out.println(arr[3]);
//输出语句却访问了一个3的索引
//程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。
}
}
2.空指针异常
public class Demo {
public static void main(String[] args) {
int[] a = new int[3];
//把null赋值给数组
arr = null;
System.out.println(arr[0]);
/*arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。*/
}
}
五.数组的相关操作
1.遍历
//使用通用的遍历格式
for(int x=0; x<arr.length; x++) {
//arr为数组名,arr.length为数组长度。
System.out.println(arr[x]);
// 循环输出数组
}
2.排序
冒泡排序,选择排序,插入排序