数组是编程语言中最常见的一种数据结构,可用于存储多个数据,是指一组数据的集合。
数组中的每个数据被称为元素,数组里可以存放任意类型的元素,但同一个数组中存放的元素类型必须一致,例如使用一个int类型数组保存某个学生的各科成绩,这样就避免了定义多个变量保存成绩的麻烦。
int[] score = {89, 94, 75};
通常可通过数组元素的索引(下标)来访问数组元素,包括为数组元素赋值和取出数组元素的值。
创建数组就是声明数组并初始化数组, Java语言中数组必须先初始化,然后才可以使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。
数组初始化有如下两种方式:
静态初始化:初始化时由从程序员显式制定每个数组元素的初始值,由系统决定数组长度。
动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值。
类型[] 变量名 = new 类型[长度];
//类型[] 数组名 = new 类型[长度]; //新建一个长度为5的int类型的数组[] //只能存储int类型的值,并且只能装5个值 //5个位置,存储都是0 int[] a = new int[5];3.2.2、第二种数组创建方式(静态初始化)
类型[] 变量名 = {元素1,元素2…元素N};
//类型[] 数组名 = {元素1,元素2,元素3,...,元素n};
//新建了一个int类型的数组
//根据{} 中定义的元素的个数,可以确定,b数组的长度是9
//存储的元素分别为1,2,3,4,5,56,6,7,8
int[] b = {1,2,3,4,5,56,6,7,8};
3.2.3、第三种数组创建方式(静态初始化)
类型[] 变量名 = new 类型[]{元素1,元素2…元素N};
//类型[] 数组名 = new 类型[]{元素1,元素2,...,元素n};
//为存在的数组变量可以重新赋值,并且直接初始化数组
int[] c = new int[] {1,2,3};
1.3、如何访问数组
可以通过数组元素的索引(下标/角标)来访问数组元素,包括为数组元素赋值和取出数组元素的值。
数组的下标值是一个大于或等于0的整数,第1个元素的下标值为0,第2个元素的下标值为0,…,第N+1 个元素的下标值为N。
访问到数组元素后,就可以把一个数组元素当成一个普通的变量使用了。包括为该变量赋值和取出该变量的值,这个变量的类型就是定义数组时方括号([])前的类型。
package com.tedu.array;
public class TestNewArray2 {
public static void main(String[] args) {
//定义一个长度为4的整数数组,可以存储4个元素
int[] arr = new int[4];
//给数组前两个元素赋值
arr[0]=111;//给下标0位置的元素赋值,其实就是第一个
arr[1]=222;
//输出数组中的元素
System.out.println(arr[0]);//111
System.out.println(arr[1]);//222
System.out.println(arr[2]);//0
System.out.println(arr[3]);//0
//定义一个数组
int[] arr2= {111,222,333,444};
System.out.println(arr2[0]);
System.out.println(arr2[1]);
System.out.println(arr2[2]);
System.out.println(arr2[3]);
}
}
1.4、数组的长度属性
int[] arr = new int[4]; System.out.println(arr.length);//4
需要注意的是:
length属性只能获取数组长度,不能改变长度;
数组一旦创建(初始化),长度不可再改变;
允许长度为0的数组
数组的长度一旦确定,数组将会默认初始化
最大下标是 a.length - 1
通过数组元素的下标可以获取数组中的每个元素,但如果数组中的元素较多,通过下标获取元素的方式太过繁琐。此时可以通过循环访问数组中的每个元素。
通过循环访问数组中的元素称之为遍历数组。
for(int i=0;i<=a.length-1;i++){
a[i]
}
1.5.2、案列1:循环初始化
声明一个长度为100的 int 数组,使用for循环为数组中的100个元素赋值,赋的值依次为 1, 2, 3…99, 100。
package com.tedu.array;
import java.util.Arrays;
public class TestNewArray3 {
public static void main(String[] args) {
//1.定义一个长度为100的数组
int[] arr = new int[100];
for(int i=0;i
需要注意的是:如果在访问数组时,下标超出了范围(比如数组长度为100,下标最大为99,但如果下标超过了99,就是下标越界),会报 java.lang.ArrayIndexOutOfBoundsException异常。必须会解决这类异常。
1.5.3、案列2:求数组的最值
对下列数组进行遍历,求数组中的最大值
int[] arr = {20, 34, 11, 55, 88, 16};
int max = 0;
代码示例:
package com.tedu.array;
import java.util.Arrays;
public class TestNewArray4 {
public static void main(String[] args) {
int[] arr = {190,34,56,89,200,250,35,1000};
int max=0;//假设是数组中目前最大的值
for(int i=0;imax) {
max=arr[i];
}
}
System.out.println("最大值是:"+max);
}
}
1.5.4、案列3:创建随机数组
package com.tedu.array;
import java.util.Arrays;
import java.util.Random;
public class TestNewArray5 {
public static void main(String[] args) {
int[] array=suijiArray(10,100);
//输出数组
System.out.println(Arrays.toString(array));
}
//首先定义一个名字为suijiArray(),接收两个参数,
//分别是数组的长度,和存储的元素的大小,
//并且将生成的随机数组返回给方法的调用者
public static int[] suijiArray(int length,int size) {
//1.创建出一个指定长度的数组
int[] a = new int[length];
//2.遍历a数组,然后给a数组中的每个元素都存入一个随机的值
//i
for(int i=0;i 


