二维数组
1、二维数组的理解
package f二维数组的理解;
/**
* 关于Java中的二维数组:
* 1、二维数组其实就是一个特殊的一维数组,其特殊在这个一维数组中的每个数组元素都是个一维数组
* 2、依次类推,三维数组是一个特殊的二维数组
* Java开发中最多使用一维数组,二维数组极少,三维数组几乎不用
* 3、二维数组的静态初始化
* int[][] array = {{100,200},{1,2,3,4},{56,57,58,99},{45,23,56,99,88}};
*
*
*/
public class ArrayTest {
public static void main(String[] args) {
//一维数组
int[] a1 = {100,200,300};
//二维数组
int[][] a2 = {
{100,200,300},
{45,26},
{1,2,3,4,5},
{95,96,98,99}
};
//二维数组的长度
System.out.println("二维数组a2的长度为 "+a2.length);
//二维数组中元素的长度
System.out.println("二维数组a2中元素a2[0]的长度为 "+a2[0].length);
System.out.println("二维数组a2中元素a2[1]的长度为 "+a2[1].length);
System.out.println("二维数组a2中元素a2[2]的长度为 "+a2[2].length);
System.out.println("二维数组a2中元素a2[3]的长度为 "+a2[3].length);
}
}
2、二维数组的读和改
package g二维数组的读和改;
/**
* 二维数组的读和改
*
*
*/
public class ArrayTest {
public static void main(String[] args) {
int[][] a1 = {
{1,2,3,4,5},
{100,200,300},
{88,99,77,65}
};
//取出二维数组a1的第一个元素
System.out.println(a1[0]);//[I@ee7d9f1 -->说明二维数组中每个元素存的是一维数组的内存地址,如下:
int[] a2 =a1[0];
int value = a2[0];// --->所以value = a1[0][0]
//取出具体的元素值
System.out.println(a1[0][0]);//1 -->说明第一个0代表该a1数组0下标元素,第二个0代表第一个元素(第一个一维数组)的0下标元素
System.out.println("取出第三个一维数组的第二个元素:"+a1[2][1]);
//遍历整个二维数组
for (int i = 0; i < a1.length; i++) {
int[] 一维数组 = a1[i];
for (int j = 0; j < a1[i].length; j++) {
int is = a1[i][j];
System.out.println("二维数组a1的a["+i+"]["+j+"]= "+is);
}
System.out.println("===============================>");
}
//改
a1[1][0] = 122;//注意别越界
}
}
3、二维数组作为方法参数
package h方法中的参数是二维数组;
/**
*
* 动态初始化二维数组和方法参数中的二维数组
*
*
*/
public class ArrayTest {
public static void main(String[] args) {
//动态初始化二维数组
int[][] a1 = new int[3][4];//创建一个三行四列的二维数组。三个一维数组,每个一维数组四个元素
//遍历二维数组
for (int i = 0; i < a1.length; i++) {
int[] js = a1[i];
for (int j = 0; j < js.length; j++) {
System.out.print(js[j]+" ");
}
System.out.println();
}
System.out.println("===================>");
//静态初始化二维数组
int[][] a2 = {
{1,2,3,4,5},
{100,200,300},
{99,88,77},
{369,258}
};
printArray(a2);
//不能printArray({{1,2,3,4,5},{100,200,300},{99,88,77},{369,258}});
//但可以这样
System.out.println("===================>");
printArray(new int[][]{{1,2,3,4,5},{100,200,300},{99,88,77},{369,258}});
}
public static void printArray(int[][] array) {
//遍历二维数组
for (int i = 0; i < array.length; i++) {
int[] js = array[i];
for (int j = 0; j < js.length; j++) {
System.out.print(js[j]+" ");
}
System.out.println();
}
}
}