java基础:java中的二维数组

二维数组的概念:

一个元素为一维数组的数组。

   

格式1:

数据类型[][] 数组名 = new 数据类型[m][n];

   

m:表示这个二维数组有多少个一维数组。

n:表示每一个一维数组的元素有多少个。

   

注意:

A:以下格式也可以表示二维数组

a:数据类型 数组名[][] = new 数据类型[m][n];

b:数据类型[] 数组名[] = new 数据类型[m][n];

B:注意下面定义的区别

int x;

int y;

int x,y;

   

int[] x;

int[] y[];

   

int[] x,y[];

demo:

class Array2Demo {

public static void main(String[] args) {

//定义一个二维数组

int[][] arr = new int[3][2];

//定义了一个二维数组arr

//这个二维数组有3个一维数组的元素

//每一个一维数组有2个元素

//输出二维数组名称

System.out.println(arr); //地址值        [[I@175078b

//输出二维数组的第一个元素一维数组的名称

System.out.println(arr[0]); //地址值        [I@42552c

System.out.println(arr[1]); //地址值        [I@e5bbd6

System.out.println(arr[2]); //地址值        [I@8ee016

//输出二维数组的元素

System.out.println(arr[0][0]); //0

System.out.println(arr[0][1]); //0

}

}

   

二维数组的第二种格式:

数据类型[][] 数组名 = new 数据类型[m][];

m:表示这个二维数组有多少个一维数组。

列数没有给出,可以动态的给。这一次是一个变化的列数

Demo:

class Array2Demo2 {

public static void main(String[] args) {

//定义数组

int[][] arr = new int[3][];

   

System.out.println(arr);        //[[I@175078b

System.out.println(arr[0]); //null

System.out.println(arr[1]); //null

System.out.println(arr[2]); //null

   

//动态的为每一个一维数组分配空间

arr[0] = new int[2];

arr[1] = new int[3];

arr[2] = new int[1];

   

System.out.println(arr[0]); //[I@42552c

System.out.println(arr[1]); //[I@e5bbd6

System.out.println(arr[2]); //[I@8ee016

   

System.out.println(arr[0][0]); //0

System.out.println(arr[0][1]); //0

//ArrayIndexOutOfBoundsException

//System.out.println(arr[0][2]); //错误

   

arr[1][0] = 100;

arr[1][2] = 200;

}

}

   

二维数组的第三种格式:

基本格式:

数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};

简化版格式:

数据类型[][] 数组名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};

   

Demo:

class Array2Demo3 {

public static void main(String[] args) {

//定义数组

int[][] arr = {{1,2,3},{4,5},{6}};

   

System.out.println(arr);

System.out.println(arr[0]);

System.out.println(arr[1]);

System.out.println(arr[2]);

   

System.out.println(arr[0][0]); //1

System.out.println(arr[1][0]); //4

System.out.println(arr[2][0]); //6

   

System.out.println(arr[0][1]); //2

System.out.println(arr[1][1]); //5

//越界

System.out.println(arr[2][1]); //错误

}

}

   

   

   

二维数组遍历:

外循环控制的是二维数组的长度,其实就是一维数组的个数。

内循环控制的是一维数组的长度。

   

demo:

class Array2Test {

public static void main(String[] args) {

//定义一个二维数组

int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};

   

//请问谁代表{1,2,3}

//arr[0]就是第一个数组

//arr[0] = {1,2,3};

for(int x=0; x<arr[0].length; x++) {

System.out.println(arr[0][x]);

}

System.out.println("--------------");

   

for(int x=0; x<arr[1].length; x++) {

System.out.println(arr[1][x]);

}

System.out.println("--------------");

   

for(int x=0; x<arr[2].length; x++) {

System.out.println(arr[2][x]);

}

System.out.println("--------------");

   

//用循环改进

for(int x=0; x<3; x++) {

for(int y=0; y<arr[x].length; y++) {

System.out.print(arr[x][y]+" ");

}

System.out.println();

}

System.out.println("--------------");

   

//这个时候,注意了,3是我们根据上面的代码得出来的

//但是,它不能针对任何的数组都可以这样

//所以,我们应该想办法改进

//其实,外面的这个循环的长度就是二维数组的长度

   

for(int x=0; x<arr.length; x++) {

for(int y=0; y<arr[x].length; y++) {

System.out.print(arr[x][y]+" ");

}

System.out.println();

}

System.out.println("--------------");

   

//用方法改进

//调用方法

printArray2(arr);

System.out.println("--------------");

   

//我们再来一个列数是变化的

int[][] arr2 = {{1,2,3},{4,5},{6}};

printArray2(arr2);

}

   

/*

需求:遍历二维数组

两个明确:

返回值类型:void

参数列表:int[][] arr

*/

public static void printArray2(int[][] arr) {

for(int x=0; x<arr.length; x++) {

for(int y=0; y<arr[x].length; y++) {

System.out.print(arr[x][y]+" ");

}

System.out.println();

}

}

}

二维数组的

公司年销售额求和

某公司按照季度和月份统计的数据如下:单位(万元)

第一季度:22,66,44

第二季度:77,33,88

第三季度:25,45,65

第四季度:11,66,99

   

分析:

A:把题目的数据用二维数组来表示

int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};

B:如何求和呢?

求和其实就是获取到每一个元素,然后累加即可。

C:定义一个求和变量sum,初始化值是0。

D:通过遍历就可以得到每一个二维数组的元素。

E:把元素累加即可。

F:最后输出sum,就是结果。

求和:

demo:

class Array2Test2 {

public static void main(String[] args) {

//把题目的数据用二维数组来表示

int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};

   

//定义一个求和变量sum,初始化值是0

int sum = 0;

   

//通过遍历就可以得到每一个二维数组的元素。

for(int x=0; x<arr.length; x++) {

for(int y=0; y<arr[x].length; y++) {

//把元素累加即可。

sum += arr[x][y];

}

}

   

//最后输出sum,就是结果。

System.out.println("一年的销售额为:"+sum+"万元");

}

}

   

   

   

   

posted @ 2017-06-12 22:02  殷瑜泰  阅读(345)  评论(0编辑  收藏  举报