前言

回顾一下自己刚刚开始认识数组的那会,还是感觉好神奇的,对着课本赞叹666。当然肯定是结合着实际场景才会体会到数组的美丽。这么聊吧,如果你想要存放全班同学的姓名,你怎么办?如果没有接触过数组,我们一定想这样做:

String name1 = "小A";
String name2 = "小B";
//...
String nameN = "小N";

String name1 = "小A";
String name2 = "小B";
//...
String nameN = "小N";

但是,肯定不是这样啦!班级如果50人,这样搞你会炸掉的,哈哈哈哈。创造来源于需求,那么,下面就来走进数组的世界。

数组特点

  • 具备相同的数据类型。
  • 所有的数组元素共享同一个数组名字。
  • 通过下标来访问元素,下标从0开始,到length-1结束。

数组定义

定义:数组是具有相同数据类型的一组数据集合。语法:数据类型[] 数组名;如:

int[] iarr ;//仅仅是定义/声明 一个整型数组。

int[] iarr ;//仅仅是定义/声明 一个整型数组。

数组初始化

如何初始化一个数组?

首先,我们要记住,数组是对象类型。所以,需要使用new运算符来初始化数组。最后,要明确指定数组的初始化长度。而且,长度一旦确定,是不可再变的。

如:

int[] iarr = new int[100];
String[] names = new String[100];
//数组初始化后,它的每个元素都是默认值,其中:
byte,short,int,long =>0
double,float => 0.0
boolean => false
char => '\u0000'
对象类型 => null

int[] iarr = new int[100];
String[] names = new String[100];
//数组初始化后,它的每个元素都是默认值,其中:
byte,short,int,long =>0
double,float => 0.0
boolean => false
char => '\u0000'
对象类型 => null

数组操作

迭代数组

如何迭代一个数组?1.普通for循环

//Code:
int[] iarr = new int[10];
for(int i = 0;i System.out.println(iarr[i]);
}

//Code:
int[] iarr = new int[10];
for(int i = 0;i System.out.println(iarr[i]);
}

2.增强for循环

语法:
for(数据类型 e: 数组名字){
 //...
}
//Code:
int[] iarr = new int[10];
for(int e: iarr){
 System.out.println(e);
}

语法:
for(数据类型 e: 数组名字){
 //...
}
//Code:
int[] iarr = new int[10];
for(int e: iarr){
 System.out.println(e);
}

元素赋值

如何给数组元素赋值?A.一个一个赋值

//Code
String[] name = new String[3];
name[0] = "jack";
name[1] = "rose";
name[3] = "john";

//Code
String[] name = new String[3];
name[0] = "jack";
name[1] = "rose";
name[3] = "john";

B.在初始化时直接赋值。

//Code
String[] names = new String[]{
 "jack","rose","john"
};
或:
String[] names = {"jack","rose","john"};
或:
String[] names;
names = {"jack","rose","john"};//error
names = new String[]{"jack","rose","john"};//ok

//Code
String[] names = new String[]{
 "jack","rose","john"
};
或:
String[] names = {"jack","rose","john"};
或:
String[] names;
names = {"jack","rose","john"};//error
names = new String[]{"jack","rose","john"};//ok

C.利用循环给元素赋值。用来用在元素值是有“规律”的情况下。如:

int[] arr = new int[10];//想要在此数组中存放1~10
for(int i=1;i<=10;i++){
 arr[i]=i;
}

int[] arr = new int[10];//想要在此数组中存放1~10
for(int i=1;i<=10;i++){
 arr[i]=i;
}

数组操作说明

数组是一种基本的数据结构[data structure]。有数据结构就会想到算法,它们相辅相成,最终目的为了数据存取的高效性。对数据的操作,本质上可以归为:增、删、查、改。

二维数组

二维数组就是数组中的元素还是一维数组。

多维数组就是数组中的元素还是数组。

Java语言支持多维数组。

二维数组的定义:数据类型[][] 数组名 = new 数据类型[rows][cols]; 其中,在初始化二维数组时,rows必须要指定。而cols可以省略。

如果省略了cols,则表示只初始化了二维本身,而二维数组中的元素没有初始化。

如:

int[][] arr = new int[3][]; 
//初始化了二维数组,但是它的元素[一维的]并没有初始化

int[][] arr = new int[3][]; 
//初始化了二维数组,但是它的元素[一维的]并没有初始化

所以,在初始化二维数时,如果指定了 cols,则这个二维数组我们说是规则的。如

int[][] arr = new int[n][m]; //

如果不指定cols,则可以实现不规则的二维组。
如:
int[][] brr = new int[n][]; //只初始化了二维
进一步去初始化它的每一个元素[一维]
brr[0] = new int[1];
brr[1] = new int[2];
brr[2] = new int[3];
...
brr[n-1] = new int[n];

int[][] crr = new int[][]{
 {1,2},
 {3,4},
};

int[][] arr = new int[n][m]; //

如果不指定cols,则可以实现不规则的二维组。
如:
int[][] brr = new int[n][]; //只初始化了二维
进一步去初始化它的每一个元素[一维]
brr[0] = new int[1];
brr[1] = new int[2];
brr[2] = new int[3];
...
brr[n-1] = new int[n];

int[][] crr = new int[][]{
 {1,2},
 {3,4},
};

结束语

哈啊哈哈,每天进步一点点哦!