• 8.javase_数组2


    一 . 二维数组
    (1)二维数组
    元素为一维数组的数组
    (2)定义格式:
    数据类型[][] 变量名; int[][] arr;
    数据类型 变量名[][]; int arr[][];
    数据类型[] 变量名[]; int[] arr[];

    二.二维数组初始化
    (1)静态初始化
    格式:数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…},…};
    范例:int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
    注意:一维数组中元素的个数可以是不同的
    举例: int[][] arr = new int[][]{{1,2,3},{4,5},{6,7,8,9}};

    (2)动态初始化
    格式:数据类型[][] 变量名 = new 数据类型[m][n];
    范例:int[][] arr = new int[2][3];

    三.二维数组元素访问
    (1)访问二维数组格式
    获取二维数组:数组名
    获取每一个一维数组:数组名[索引]
    获取每一个二维数组元素:数组名[索引][索引]

     (2)访问二维数组案例
        int[][] arr = {{1, 2, 3}, {4, 5, 6}};
        System.out.println(arr); //输出数组名 [[I@776ec8df
        System.out.println(arr[0]); //输出二维数组中的一维数组名  [I@4eec7777
        System.out.println(arr[0][0]); //输出数组具体元素
    
    • 1
    • 2
    • 3
    • 4
    • 5

    四.二维数组内存图
    在这里插入图片描述

    五.二维数组常见操作
    (1)二维数组的遍历
    需求:已知一个二维数组 arr = {{1,2,3},{4,5,6},{7,8,9}}; 请把元素在控制台输出

    public class ArrayTest01 {
    			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]+" ");
    					}
    				}
    			}
    		}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    (2)二维数组元素打乱
    需求:已知二维数组 arr = {{1,2,3},{4,5,6},{7,8,9}};用程序实现把数组中的元素打乱,并在控制台输出打乱后的数组元素

    public class ArrayTest02 {
    			public static void main(String[] args) {
    				//1.定义二维数组,并进行静态初始化
    				int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    				//2.创建随机数对象
    				Random r = new Random();
    				//遍历二维数组,进行元素打乱
    				for (int i = 0; i < arr.length; i++) {
    					for (int j = 0; j < arr[i].length; j++) {
    						int x = r.nextInt(arr.length);
    						int y = r.nextInt(arr[x].length);
    						//元素交换
    						int temp = arr[i][j];
    						arr[i][j] = arr[x][y];
    						arr[x][y] = temp;
    					}
    				}
    				//遍历二维数组输出
    				for (int i = 0; i < arr.length; i++) {
    					for (int j = 0; j < arr[i].length; j++) {
    						System.out.println(arr[i][j]);
    					}
    				}
    			}
    		}
    
    • 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
  • 相关阅读:
    五年Java程序员进阶架构师的一些心得以及职业生涯规划
    幼儿园核酸预约登记小程序实战开发(上篇)
    项目管理之变更管理
    系统架构设计师教程 第3章 信息系统基础知识-3.1 信息系统概述
    猿创征文|Cglib代理之代理类方法的动态传递
    智能穿戴终端设备安卓主板方案_MTK平台智能手表PCBA定制开发
    【机器学习】sklearn特征选择(feature selection)
    路径规划算法:基于世界杯优化的机器人路径规划算法- 附Python代码
    分布式任务调度(04)--自研
    c语言中为什么函数传参大多数用指针类型
  • 原文地址:https://blog.csdn.net/jinhuding/article/details/128210196