数组
数组概述
相同数据类型 的有序集合
数组的声明与创建
声明
//定义 int[] nums; //结构:元素数据类型[] 数组名 int nums2[]; //两种均可。优先选上面一种
创建
//创建 nums = new int[10]; //这里面可以存放10个int类型的数据,给了一个10的空间
-
tips:
声明与创建可合二为一:
int nums[] = new int[10];
实际上,声明时数组并不存在,只有创建时数组才会存在。
赋值
//给数组元素赋值 nums[0]=1; nums[1]=1; nums[2]=1; nums[3]=8; nums[4]=1; nums[5]=1; nums[6]=4; nums[7]=1; nums[8]=1; nums[9]=3; //计算所有元素的和 int sum = 0; for (int i = 0; i < nums.length; i++) { sum=sum+nums[i]; } System.out.println(sum);
初始化
public class Man { public static void main(String[] args) { //静态初始化:可以理解为 声明创建+赋值 int[] array1 = {1,2,3,4,6,7,8,9}; //动态初始化:包含默认初始化,隐式初始化 int[] array2 = new int[10]; array2[0] = 10; System.out.println(array2[0]); System.out.println(array2[1]); // int[]类型的元素默认初始化值为0,string[]类型的元 素为null } }
-
动态初始化:可以理解为 声明创建+赋值
-
静态初始化:包含默认初始化,隐式初始化
-
默认初始化:数组已经创建,其中每个元素按照实例变量同样的方式被隐式初始化
基本特点
-
一旦创建,大小不可变
-
相同元素类型,不可混合
-
数组中的元素可以为任何数据类型,包括基本数据类型和引用数据类型(数组为引用数据类型)
-
数组本身就是引用数据类型,数组可以看作对象(数组对象本身是在堆中的),数组元素相当于对象中的成员变量
数组的使用
public class ArrayDome04 { public static void main(String[] args) { int [] arrays = {1,2,3,4,5,6}; //增强for循环,不能取到下标 // for (int elm : arrays) { //遍历每一个元素 // System.out.println(elm); // } printArray(arrays); System.out.println(reverse(arrays)); } //打印数组元素 public static void printArray(int[] arrays){ //参数类型为以int为元素的数组,arrays是 参数名,printArray 为方法名 for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i]+" "); } } //反转数组 public static int[] reverse(int[] arr){ //返回值为数组 int[] arry0 = new int[arr.length]; for (int i = 0; i < arr.length; i++) { arry0[i]=arr[arr.length-1-i]; } return arry0; } }
多维数组
数组的元素类型仍为数组
例如 二维数组:二位数组的元素都为一维数组
//创建多维数组 int[][] array = {{1,2},{2,4},{2,3},{5,6}};//二维数组:两个[] //[4][2]
//多维数组 public class ArrayDome05 { public static void main(String[] args) { int[][] array = {{1,2},{2,4},{2,3},{5,6}};//二维数组:两个[] //[4][2] printArray(array[0]); System.out.println(); System.out.println(array[0][1]); for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.println(array[i][j]); } } } //打印数组元素 public static void printArray(int[] arrays){ //参数类型为以int为元素的数组,arrays是参数 名,printArray 为方法名 for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i]+" "); } } }
Array 类
Array 类提供静态方法来动态创建和访问Java数组
全部方法均为静态方法
int[] array1 = {1,2,4,5}; System.out.println(Array.get(array1,3)); //5 在已知数组元素类型时不推荐使用 System.out.println(Array.getInt(array1,3)); //5