前言
一维数组基本知识的复习。
一、一维数组
(1)数组介绍
数组可以进行存放多个同一类型的数据。数组是一种引用数据类型,即数组就是一组数据。
(2)数组的使用
1)动态初始化
方法一:数据类型[ ] 数组名 = new 数据类型[大小]
如:int[ ] a = new int[5];
方法二:先声明数组: 数据类型 数组名[ ]
如:int[ ] a;
再创建数组: 数组名 = new 数据类型[大小]
如:a = new int[5];
2)静态初始化
方法:数据类型 数组名[ ] = {元素值1,元素值2……}
如:int a[5] = {1, 2, 3, 4, 5};
3)数组的引用
引用方法:数组名 [下标];
注意:数组的下标是从0开始的,如:a数组第三个数的引用方法为 a[2]
(3)数组的细节
1)数组是多个相同类型数据的组合,实现对这些数据的统一管理
2)数组中的元素可以是任何数据类型,但不能混用
3)数组的下标是从 0 开始
4)数组的下标必须在指定范围内,否则报错
5)数组创建后,如果没有赋值则会有默认值
int 0、shrot 0、byte 0、long 0、float 0.0、double 0.0、String null、boolean false
(4)应用案例
1)创建一个 char 类型的 26 个元素的数组,分别 放置'A'-'Z',使用循环访问所有元素
public class ArrayExercise01 { public static void main(String[] args) { char[] c = new char[26]; for(int i = 0; i < c.length; i++) { c[i] = (char) ('A' + i);// 'A' + i 是 int型,需要强制类型转换 System.out.print(c[i] + " "); } } }
2)请求出一个数组 int[] 的最大值 {4,-1,9,10,23},并得到对应的下标
public class ArrayExercise02 { public static void main(String[] args) { int[] a = {4 , -1 , 9 , 10 , 23}; int max = a[0]; int j = 0; for(int i = 1 ; i < a.length ; i++) { if(a[i] > max) { max = a[i]; j = i; } } System.out.println("最大值为:" + max); System.out.println("最大值的下标为:" + j); } }
二、数组赋值机制
1)基本数据类型赋值,这个值就是具体的数据,相互不影响。
如:int n1 = 10; int n2 = n1;
2)数组在默认情况下是引用传递,赋的值是地址。
3)基本数据类型赋值演示:
public class ArrayAssign { public static void main(String[] args) { //基本数据类型赋值,赋值方式为值拷贝 //n2的变化,不会影响到n1的值 int n1 = 10; int n2 = n1; n2 = 80; System.out.println("n1=" + n1);//10 System.out.println("n2=" + n2);//80 } }
输出结果为:
n1 = 10
n2 = 80
4)引用传递演示:
public class ArrayAssign { public static void main(String[] args) { //数组在默认情况下是引用传递,赋的值是地址,赋值方式称为 引用传递,传递的是一个地址 int[] arr1 = {1,2,3}; int[] arr2 = arr1; //把arr1赋给arr2 //arr2 的值会影响 arr1 的值,所以称为引用传递 arr2[0] = 10; for(int i = 0; i < arr1.length; i++) { System.out.println(arr1[i]); // arr1 和 arr2 指向同一个数据空间 } } }
