当前位置:网站首页 > Java基础 > 正文

java二维基础




之前我们已经知道什么是 数组(一维数组)java 基础——数组,数组的存取

这里补充一点: 数组本身是引用数据类型 ,数组的元素 可以是  基本数据类型 跟 引用数据类型  

那么?什么是二维数组 ?

官方定义:以一维数组作为一维数组元素的数组

要是有点绕,不好理解,没关系,简单来说,就是一维数组里面存一维数组 ,这就是二维数组

到这,是不是已经基本明白了二维数组的概念了

现在我们直接来看语法:


2. 二维数组语法格式

  • 数据类型 [][] 标识符(自己取的名字) = { {},{},{} ..... }

回顾一下一维数组 这种创建方式:

 // 这是一维数组 int[] arr1 = {1,2,3}; // 这是一个二维数组 int[][] arr2 = {{1,2,3},{2,3},{6,3,9}}; 

  

  • 数据类型 [][] java二维基础 标识符(自己取的名字)= new 数据类型[数组里元素个数][每个元素里面一维数组长度]  


  数组里元素个数 = 二维数组长度

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

  来看个图解

声明一个二维数组array1,里面有三个元素,每个元素里面有两个元素的数组

3. 二维数组的取值

单个取值

二维数组的取值呢,跟一维数组还是有差别的

比如下面这个例子,我们要获取这个二维数组中的 6  

 

这边我们可以理解成一个平面坐标系,坐标系我们都知道,(x,y)我们可以确定一个平面点的位置,这边也一样  

首先可以看出这个二维数组里面有三个元素:

元素1: 下标 0 (数组的角标从0 开始),{1,2,3}  

元素2: 下标 1,{2,3}

元素3: 下标 2,{6,3,9}

每个元素又是一个数组,下标还是从0 开始

所以 我们获取 6 这个元素 arr2[2][0], 意味着 6 在这个 二维数组中 元素3 (下标2) 里面 的 数组 的 第1个(下标0) 元素

 int[][] arr2 = {{1,2,3},{2,3},{6,3,9}}; System.out.println(arr2[2][0]); 

  

这种方式的也一样:int[][]  array1 = new int[3][2];

可以理解成 3 行 2 列  

遍历取值

我们来看看二维数组是怎么遍历的,这边我们就需要两层 for循环了  

比如:

遍历 int[][] arr2 = {{1,2,3},{6,3,9,10}};

 int[][] arr2 = {{1,2,3},{6,3,9,10}}; System.out.println("----------基本循环----------"); for (int i = 0; i < arr2.length; i++) { for (int j = 0;j < arr2[i].length;j++) { System.out.print(arr2[i][j]+" "); } } System.out.println(); System.out.println("----------增强for循环----------"); for (int[] ints : arr2) { for (int anInt : ints) { System.out.print(anInt+" "); } } 

  输出结果:

4. 存值

二维数组的 存值 你可以 一个一个来,    arr[0][0] 。。。。

 int[][] arr = new int[3][2]; arr[0][0] = 1; arr[0][1] = 3; arr[1][0] = 5; arr[1][1] = 7; arr[2][0] = 9; arr[2][1] =11; for (int[] ints : arr) { for (int anInt : ints) { System.out.println(anInt); } } 

  

当然里面是存的一维数组,你也可以这样 ,比如有两个一维数组 ,一维数组的值怎么来,就不用多说了,除了常规添加外,java 基础——数组 可以看看逗号隔开字符串转数组方法   (开发中数组转字符串,转list集合用的很多

比如 现在有两个字符串,要存储到二维数组中

 //定义一个二维数组 String [][] arr = new String[3][2]; String str1 = "2,3,6,9"; String str2 = "11,13"; //字符串转数组 String[] split = str1.split(","); String[] split1 = str2.split(","); //将二维数组第一个元素的值设置为 一维数组 split arr[0] = split; //将二维数组第二个元素的值设置为 一维数组 split1 arr[1] = split1; //输出看看 for (String[] strings : arr) { for (String string : strings) { System.out.println(string); } } 

  

这里也可以看到二维数组中 一维数组的长度可以不一样 ,第三个没有元素,就是我们定义的默认一维数组长度 2 了,为null

扩展 :二维数组的初始化内存解析 (有的面试会问,有个印象)

现在我们知道了二维数组 获取单个 元素,以及 遍历 , 下面我们来加深下对二维数组的理解

一般我们声明二维数组的初始化 ,

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

  

它的外层元素:arr[0] arr[1] arr[2] .....

它的内层元素:arr[0][0] arr[1][2] ......

内层元素我们都知道,是获取一个具体的值

那么?外层是什么东西呢?我们来打印一下

 int[][] arr = new int [3][2]; System.out.println(arr[0]); 

  

可以看出它是一个地址值,这是二维 元素 指向 一位数组的地址值

arr 才是栈 指向 二维数组的地址值

 int[][] arr = new int [3][2]; System.out.println(arr); 

  

看出区别了没,一维数组一个[ 二维数组 两个[

更多内容,还请关注【java资讯】 公众号

  • 上一篇: java8基础教程
  • 下一篇: java0基础自学
  • 版权声明


    相关文章:

  • java8基础教程2024-11-12 09:18:02
  • java网络基础知识2024-11-12 09:18:02
  • java抽奖基础代码2024-11-12 09:18:02
  • 马士兵java基础度云2024-11-12 09:18:02
  • java基础问题代码2024-11-12 09:18:02
  • java0基础自学2024-11-12 09:18:02
  • java 程序基础试题及答案2024-11-12 09:18:02
  • 面试java基础常问2024-11-12 09:18:02
  • java基础视频教学2024-11-12 09:18:02
  • java编程基础入门教程62024-11-12 09:18:02