文章目录
- 数组
- 数组的基本概念
- 数组的创建
- 数组的两种声明方式
- 数组创建的三种方式
- 创建数组的划分
- 数组的长度
- 数组的访问和迭代
- 二维数组
- 二维数组的定义
- 二维数组的迭代
数组
数组的基本概念
1.数组就是相同类型元素的集合。
2.数组是一种线性的数据结构(即具有连续性)。
3.数组本身是引用数据类型、即对象数组可以存储基本数据类型,也可以存储引用数据类型。存储引用数据类型时直接使用Object类中的toString方法只能输出对象的引用(地址),若要输出引用数据类型的值则要在类中对Object类中的toString方法进行一个重写@Override
数组的创建
数组的两种声明方式
数据类型 [] 数组名字 例如:int [] a;
数据雷星 数组名字 [] 例如:int a [];
注意:Java中的这两种声明方式没有任何的区别,但是建议大家使用第一种,避免混淆a的数据类型。
代码示例:
//声明数组的两种方式
int [] a;
int b [];
int [] c,d;//这里的c,d都是整型数组
int e,f [];//这里的e是int型,f是整型数组
数组创建的三种方式
1.声明数组的同时,根据指定的长度分配内存,但数组中的元素值都为默认的初始化值
例如:int [] ary0 = new int[10];//创建了一个名为ary0的长度为十整型数组
不同类型的数组初始化值不同
int类型的初始化值为 0
byte类型得初始化值 0
short类型的初始化值为 0
long类型的初始化值为 0
char类型的初始化值为 空
boolean类型的初始化值为 false
float类型的初始值为 0.0
double类型的初始值为 0.0
String(引用数据类型)的初始值为 null
代码示例
public static void main(String[] args) {
//声明数组时,仅分配长度,数组中的元素都为默认的初始化值
int [] a0 = new int[4];//int类型的初始化值为 0
byte [] a1 = new byte[4];//byte类型得初始化值 0
short [] a2 = new short[4];//short类型的初始化值为 0
long [] a3 = new long[4];//long类型的初始化值为 0
char [] a4 = new char[4];//char类型的初始化值为 空
boolean [] a5 = new boolean[4];//boolean类型的初始化值为 false
float [] a6 = new float[4];//float类型的初始值为 0.0
double [] a7 = new double[4];//double类型的初始值为 0.0
String [] a8 = new String[4];//String(引用数据类型)的初始值为 null
System.out.println(Arrays.toString(a0));//[0, 0, 0, 0]
System.out.println(Arrays.toString(a1));//[0, 0, 0, 0]
System.out.println(Arrays.toString(a2));//[0, 0, 0, 0]
System.out.println(Arrays.toString(a3));//[0, 0, 0, 0]
System.out.println(Arrays.toString(a4));//[ , , , ]
System.out.println(Arrays.toString(a5));//[false, false, false, false]
System.out.println(Arrays.toString(a6));//[0.0, 0.0, 0.0, 0.0]
System.out.println(Arrays.toString(a7));//[0.0, 0.0, 0.0, 0.0]
System.out.println(Arrays.toString(a8));//[null, null, null, null]
}
2.声明数组并分配内存,同时将其初始化
例如:int [] ary1 = new int[]{1,2,3};//创建了一个名为ary1的长度为3内容为1,2,3的数组
3.与第二种方式相同,只是语法上进行简化
例如:int [] ary2 = {1,2,3};//创建了一个名为ary2的长度为3内容为1,2,3的数组
创建数组的划分
数组的创建可以分为动态和静态两种
1.动态创建数组: 不对数组进行元素赋值,可以结合for循环对其赋值,如上面的第一种创建方式
2.静态创建数组: 在创建的时候,就为每一个元素进行初始赋值
数组的长度
求数组的长度可以使用 length属性
例如:
int [] ary = {1,2,3,3,4,5,63,21,1};
System.out.println("ary数组的长度为:"+ary.length);//ary数组的长度为:9
数组的访问和迭代
1.数组的访问: 数组的名字[索引] 例如: a[0],a[1]
注意:
数组的索引从"0"开始;
索引的数据类型是整形;
索引的最大值与数组的长度差"1"(即区间长度为0~数组名.length-1)
2.数组的迭代(两种方式)
第一种: for循环
int [] ary = new int []{1,2,4,12,52,1};
//数组的迭代
for(int i = 0; i<ary.length; i++){
System.out.println(ary[i]);//取出第 i 个数组的元素
}
第二种:增强for循环 (foreach循环)
for(数据类型 变量 : 要循环的数组/集合)
每循环一次从数组中取出一个元素,赋值给前面声明的变量,直到数组中的全部元素遍历完毕,循环终止
int [] ary0 = new int[]{1,2,3,4,5};
for(int i : ary){
System.out.println(i);
}
代码示例
import java.util.Arrays;
//数组的访问和迭代
public class ArrayDemo3 {
public static void main(String[] args) {
//数组的访问
//创建一个数组
String ary [] ={"baby","我想你了"};
//求数组的一个
System.out.println("数组ary的长度为:"+ary.length);//数组ary的长度为:2
//输出一个数组
System.out.println(Arrays.toString(ary));//[baby, 我想你了]
//访问数组中的一个元素
System.out.println(ary[0]);//baby
//数组的迭代
//创建一个数组
char [] ary0 = {'我','爱','你'};
//for循环
for (int i = 0; i < ary0.length; i++) {
System.out.println(ary0[i]);
}
//foreach循环
for (char x: ary0
) {
System.out.println(x);
}
}
}
二维数组
二维数组的定义
定义: 数组的数组, 二维数组的每一个元素都是一个一维数组
例如:int [][] ary = {{1,2,3},{2,3},{4,5,6}};
二维数组的声明
int [][] a;
int b [][];
二维数组的迭代
//二维数组
public class ArrayDemo {
public static void main(String[] args) {
//创建一个二维数组
int [][] ary = {{1,2,3},{2,7,4,5,4},{0,2,2,2}};
//二维数组的迭代
for (int i = 0; i < ary.length; i++) {
for (int j = 0; j < ary[i].length; j++) {
System.out.print(ary[i][j]+"\t");
}
System.out.println();
}
/*
* 结果为:
* 1 2 3
2 7 4 5 4
0 2 2 2
*/
}
}