二维数组:二维数组就是存储一维数组(内存地址/引用)的数组。
二维数组的初始化
1) int intA [][]={{1,2},{2,3},{3,4,5}};
2) int [][] intB=new int[3][5];
3) int [] intC []=new int[3][];
public class TestArray {
public static void main(String[] args) {
int intA [][]={{1,2},{2,3},{3,4,5}};
System.out.println(intA); //[[I@5cad8086, 两个[[表示是二维的 I表示数组是int型 @5cad8086是内存地址
System.out.println(intA[1][1]);//3
int [][]intB=new int[3][];//声明一一个二维数组,用于存储3个一维数组,每一个一维数据存多少个数组,不知道,null
intB[0]=new int[3]; //3
System.out.println(intB[0]);//[I@6e0be858
System.out.println(intB[1]);//null
//System.out.println(intB[1][1]);//抛异常:java.lang.NullPointerException
//声明一个二维数组,同时创建出一维数组,每个一维数组的长度均相同
//存储三个一维数组,每个一维数组的长度为4
int [] intC[]=new int[3][4];
intC[1]=new int[]{1,2,3,4};
System.out.println(intC);//[[I@61bbe9ba
System.out.println(intC[1]);//[I@610455d6
}
}
二维数组的遍历
public class TestArray {
public static void main(String[] args) {
//二维数组
int [] intA[] ={{1,2},{2,3,4},{3,4,5,6}};
//(1)普通for循环
for(int i=0;i<intA.length;i++){ //0,1,2
for(int j=0;j<intA[i].length;j++){ //每一个一维数组的长度
System.out.print(intA[i][j]+"\t");
}
System.out.println();
}
//(2)加强for循环
System.out.println("\n=========================");
for(int[] arr:intA){ //int[]二维数组中元素的类型, arr迭代变量, intA二维组的名称
for(int i:arr){ //int,一维数组中元素的类型,i,迭代变量,arr,一维数组的名称
System.out.print(i+"\t");
}
System.out.println();
}
}
}
数组存储自定义对象
public class TestArray{
public static void main(String[] args) {
//创建一个Person类型的数组,用于存储3个Person类型的对象
Person [] pers=new Person[3];
//创建Person类型的对象
Person p1=new Person("张三", 19, "男");
//将p1对象存储到Person类型的数组中
pers[0]=p1;
pers[1]=new Person("李四", 20, "女");
pers[2]=new Person("王五",28,"男");
for(int i=0;i<pers.length;i++){
System.out.println(pers[i]);
}
//对象数组中存储的是对象的引用(内存地址)
}
}
二维数组的查找:
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
public class Solution {
public boolean Find(int target, int [][] array) {
int row=0;
int col=array[0].length-1;
while(row<=array.length-1&&col>=0){
if(target==array[row][col])
return true;
else if(target>array[row][col])
row++;
else
col--;
}
return false;
}
public static void main(String[] args) {
int intA [][]={{1,2,3},{4,5,6},{7,8,9}};
int target= 20;
Solution ss = new Solution();
boolean res = ss.Find(target, intA);
System.out.println(res);
}
}