一.数组定义
1.数组概述:是一个容器,数组本身属于引用数据类型
2.作用:一次存储多个数据
3.特点:
a.既可以存储基本类型的数据,还能存储引用类型的数据
b.定长(定义数组时长度为多长,最多就能存多少个数据)
4.定义:
a.动态初始化:
数据类型[] 数组名 = new 数据类型[长度]
数据类型 数组名[] = new 数据类型[长度]
各部分解释:
等号左边的数据类型:规定了数组中只能存储什么类型的元素
[]:代表的是数组,一个[]代表一维数组,两个[][]代表二维数组
数组名:自己取的名字,遵循小驼峰
new:代表的是创建数组
等号右边的数据类型:要和等号左边的数据类型一致
[长度]:指定数组长度,规定了数组最多能存多少个数据
b.静态初始化
数据类型[] 数组名 = new 数据类型[]{元素1,元素2...} -> 不推荐使用
数据类型 数组名[] = new 数据类型[]{元素1,元素2...} -> 不推荐使用
c.简化的静态初始化:
数据类型[] 数组名 = {元素1,元素2...}-> 推荐使用
5.区别:
a.动态初始化:定义的时候只指定了长度,没有存具体的数据
当只知道长度,但不知道具体存啥数据时可以使用动态初始化
b.静态初始化:定义的时候就直接知道存啥了
public class Array {
public static void main(String[] args) {
//动态初始化
int[] arr1 = new int[3];
String[] arr2 = new String[3];
//静态初始化
int[] arr3 = new int[]{1,2,3,4,5};
//简化静态初始化
int[] arr4 = {1,2,3,4,5};
String[] arr5 = {"张三","李四","王五"};
}
}
二.数组操作
1.获取数组的长度
1.格式:
数组名.length
2.注意:
length后面不要带小括号,因为length不是一个方法,而是数组中的一个属性
public class Demo01Array {
public static void main(String[] args) {
//定义一个数组
String[] arr1 = {"相机","新建","香蕉","橡胶","相较","相加","相较"};
int len = arr1.length;
System.out.println("len = " + len);
}
}
2.索引
1.概述:元素在数组中存储的位置
2.特点:
a.索引唯一
b.索引都是从0开始的,最大索引是数组长度-1
3.注意:
我们将来操作元素,必须通过索引来操作
存数据,要指定索引
取数据,要指定索引
查数据,要指定索引

3.存储元素
1.格式:
数组名[索引值] = 值 -> 将等号右边的值放到数组指定的索引位置上
public class Array {
public static void main(String[] args) {
//键盘录入三个整数,存储到数组中
int[] arr = new int[3];
Scanner sc = new Scanner(System.in);
/*
先看等号右边的,先录入,将录入的数据保存到指定的索引位置上
*/
/* arr[0] = sc.nextInt();
arr[1] = sc.nextInt();
arr[2] = sc.nextInt();*/
/* for (int i = 0; i < 3; i++) {
arr[i] = sc.nextInt();
}*/
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
}
}
4.获取元素
1.地址值:
数组在内存中的身份证号,唯一标识,我们可以通过这个唯一标识到内存中准确找到这个数,从而操作这个数组中的数据
2.注意:
a.直接输出数组名,会直接输出数组在内存中的地址值
b.如果数组中没有存元素,那么直接获取索引上对应的元素也是有值的,只不过不是我们存储的数据,而是数组中的元素默认值
整数: 0
小数: 0.0
字符: '\u0000' -> 空白字符 -> 对应的int值是0
布尔: false
引用: null
public class Demo05Array {
public static void main(String[] args) {
int[] arr = new int[3];
arr[0] = 100;
arr[1] = 200;
arr[2] = 300;
System.out.println(arr);//[I@135fbaa4 -> 地址值
System.out.println(arr[0]);//输出0索引上的元素
System.out.println(arr[1]);//输出1索引上的元素
System.out.println(arr[2]);//输出2索引上的元素
int[] arr1 = new int[3];
arr1[0] = 1000;
arr1[1] = 2000;
arr1[2] = 3000;
System.out.println(arr1);//[I@45ee12a7
System.out.println(arr1[0]);//输出0索引上的元素
System.out.println(arr1[1]);//输出1索引上的元素
System.out.println(arr1[2]);//输出2索引上的元素
System.out.println("=============================");
int[] arr2 = new int[3];
System.out.println(arr2[0]);//输出0索引上的元素 0
System.out.println(arr2[1]);//输出1索引上的元素 0
System.out.println(arr2[2]);//输出2索引上的元素 0
}
}


5.遍历数组
1.遍历:将元素从数组中一个一个的获取出来
public class Demo07Array {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6};
/*for (int i = 0; i < 6; i++){
System.out.println(arr[i]);
}*/
/* for (int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}*/
/*
快速遍历快捷键: 数组名.fori
*/
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
快速遍历快捷键: 数组名.fori
1750

被折叠的 条评论
为什么被折叠?



