Java基础06-二维数组

  1. Demo1_Array
    1. Demo2_Array
    2. Demo3_Array
    3. Demo4_Array
    4. Test1_Array
    5. Test2_Array
    6. Test3_Array

Demo1_Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
* A:二维数组概述
* B:二维数组格式1
* int[][] arr = new int[3][2];
* C:二维数组格式1的解释
* D:注意事项
* a:以下格式也可以表示二维数组
* 1:数据类型 数组名[][] = new 数据类型[m][n];
* 2:数据类型[] 数组名[] = new 数据类型[m][n];
* B:注意下面定义的区别
*
int x;
int y;
int x,y;

int[] x;
int[] y[];

int[] x,y[]; x是一维数组,y是二维数组
* E:案例演示
* 定义二维数组,输出二维数组名称,一维数组名称,一个元素
*/
class Demo1_Array {
public static void main(String[] args) {
int[][] arr = new int[3][2];
/*
这是一个二维数组
这个二维数组中有3个一维数组
每个一维数组中有2个元素

[[I@7852e922 //二维数组的地址值
[I@4e25154f //一维数组的地址值
0 //元素值
*/
System.out.println(arr); //二维数组
System.out.println(arr[0]); //二维数组中的第一个一维数组
System.out.println(arr[0][0]); //二维数组中的第一个一维数组的第一个元素
}
}

Demo2_Array

1
2
3
4
5
6
7
8
9
10
11
12
13
/*
* A:画图演示
* 画图讲解上面的二维数组名称,一维数组名称,一个元素的值的问题
*/
class Demo2_Array {
public static void main(String[] args) {
int[][] arr = new int[3][2];
System.out.println(arr); //打印二维数组
System.out.println(arr[0]); //打印二维数组中的第一个一维数组
System.out.println(arr[0][0]); //打印二维数组中的第一个一维数组中的第一个元素
}
}

Demo3_Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
* A:二维数组格式2
* int[][] arr = new int[3][];
* B:二维数组格式2的解释
* C:案例演示
* 讲解格式,输出数据,并画内存图
*/
class Demo3_Array {
public static void main(String[] args) {
int[][] arr = new int[3][]; //这是一个二维数组,这个二维数组中有三个一维数组,三个一维数组都没有被赋值

System.out.println(arr[0]); // null
System.out.println(arr[1]); // null
System.out.println(arr[2]); // null
arr[0] = new int[3]; //第一个一维数组中可以存储三个int值
arr[1] = new int[5]; //第二个一维数组中可以存储五个int值
System.out.println("------------------");
System.out.println(arr[0]); //[I@7852e922
System.out.println(arr[1]); //[I@4e25154f
System.out.println(arr[2]); //null
}
}

Demo4_Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*
* A:二维数组格式3
* int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
* B:二维数组格式3的解释
* C:案例演示
* 讲解格式,输出数据,并画内存图
*/
class Demo4_Array {
public static void main(String[] args) {
int[][] arr = {{1,2,3},{4,5},{6,7,8,9}}; //这是一个二维数组,这个二维数组中每个大括号都代表一个一维数组
System.out.println(arr); //[[I@19bb25a,二维数组的地址值
System.out.println(arr[0]); //[I@da6bf4,一维数组的地址值
System.out.println(arr[0][0]); //1,一维数组中的元素值
}
}

Test1_Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
* A:案例演示
* 需求:二维数组遍历

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

*/
class Test1_Array {
public static void main(String[] args) {
int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};

for (int i = 0;i < arr.length ;i++ ) { //获取到每个二维数组中的一维数组
for (int j = 0;j < arr[i].length ;j++ ) { //获取每个一维数组中的元素
System.out.print(arr[i][j] + " ");
}

System.out.println();
}
}
}

Test2_Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*
* A:案例演示
*
需求:公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
*/
class Test2_Array {
public static void main(String[] args) {
int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};

int sum = 0; //定义变量,记录每次相加的结果
for (int i = 0;i < arr.length ;i++ ) { //获取每一个一维数组
for (int j = 0;j < arr[i].length ;j++ ) { //获取每一个一维数组中的元素
sum = sum + arr[i][j]; //累加
}
}

System.out.println(sum);
}
}

Test3_Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
基本数据类型的值传递,不改变原值,因为调用后就会弹栈,局部变量随之消失
引用数据类型的值传递,改变原值,因为即使方法弹栈,但是堆内存数组对象还在,可以通过地址继续访问

Java中到底是传值还是传址
1,既是传值,也是传地址,基本数据类型传递的值,引用数据类型传递的地址
2,java中只有传值,因为地址值也是值(出去面试都说这种,支持者是高司令(java之父))
*/
class Test3_Array {
public static void main(String[] args) {
/*int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b); //a = 10,b = 20
change(a,b);
System.out.println("a:"+a+",b:"+b); //?*/a = 10,b = 20

int[] arr = {1,2,3,4,5};
change(arr);
System.out.println(arr[1]);
}

public static void change(int a,int b) { //a = 10, b= 20
System.out.println("a:"+a+",b:"+b); //a = 10,b = 20
a = b; //a = 20
b = a + b; //b = 40
System.out.println("a:"+a+",b:"+b); //a = 20, b = 40
}

public static void change(int[] arr) { //1,4,3,8,5
for(int x=0; x<arr.length; x++) {
if(arr[x]%2==0) {
arr[x]*=2;
}
}
}
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1210331079@qq.com

💰

Title:Java基础06-二维数组

Count:1.3k

Author:千 羽

Created At:2020-05-22, 15:50:47

Updated At:2020-10-05, 08:51:26

Url:https://nateshao.github.io/2020/05/22/Java%E5%9F%BA%E7%A1%8006-%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

donation.headline

// 底部音乐
//右上角Github图标