数组
基本特点
-
数组的长度是确定的,一旦被创建,它的大小就是不可改变的
-
数组的元素必须是相同类型,不允许出现混合类型
-
数组中的元素可以是任何数据类型,包括基本类型和引用类型
-
数组变量属于引用类型,也可以看做是对象,数组中的每个元素相当于该对象的成员变量。并且数组本身是对象,无论数组保存原始类型还是其他对象类型,数组对象本身是在堆中的
声明/创建
int[] nums (首选) int nums[]
nums=new int[10];
int[] nums=new int[10];
初始化
静态初始化
int[] a={1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i < 10; i++) {
System.out.print(a[i]+"\t");
}
默认初始化
主动赋值前所有元素默认为0
int[] b=new int[10];
b[0]=1;//主动赋值前所有元素默认为0
for (int i = 0; i < 10; i++) {
System.out.print(b[i]+"\t");
}
使用
当需要循环打印而不修改单个元素的值的时候,可以使用for-each循环
int[] mum={1,2,3,4};
for(int a:num/*声明:表达式*/)
{
***
}
当方法的形式参数定义了数组类型时,已经初始化的数组可以作为实际参数传入方法,以调用方法的形式完成某些功能
public class ArrayDemo02 {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4, 5};
array(a);
}
public static void array(int[] arrays) {
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]);
}
}
}
当调用的方法需要达成:返回一个数组结果时,可以把数组作为方法的返回值进行定义
public class ArrayDemo02 {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4, 5};
array(a);
}
//反转数组顺序
public static int[] array(int[] arrays) {
int[] result=new int[arrays.length];
for (int i = 0,j=arrays.length; i < arrays.length; i++,j--) {
result[j]=arrays[i];
}
return result;
}
}
多维数组
几维数组就是定义时几个[]
int[][] a={{1,2},{2,3}};
稀疏数组
当一个数组中大部分元素为0, 或者为同一值的数组时,可以使用稀疏数组来保存该数组
稀疏数组的处理方式是:
-
记录数组一共有几行几列,有多少个不同值
-
把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模