栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java二维数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java二维数组

前言

二维数组将使用多个下标访问数组元素,它适用于表格或更加复杂的排列形式。
例如对于一个二维表格,我们就可以用二维数组将其数据与数组中的数据一一对应。
如下表格有多行多列,那么二维数组这种特性就适合存放这样的数据。

接下来讲解一下C/C++中二维数组与Java中二维数组的区别。
C/C++
C/C++二维数组详细介绍,已经有好轮子了我就不造了(我不配)
Java
相比于C/C++,Java并没有指针机制。因此其二维数组并不是数组中的数组是另一个数组的指针,而是一个数组的数组,也就是一个存放各种同类型数组的数组,因此Java中的二维数组就摆脱了内层数组比如长度一样的限制,也就是相对于Java中数组内数组长度必须可以任意,如下。因此Java可以很方便的构造一个“不规则”数组。

		int[][]a={
		      		{1,2,3},
		            {2,3,4,5},
		            {4,5,6,7,8}
		        };  //Java创建二维数组的一种方式
        int[][]b={
                {1,2,3,4,5},
                {2,3,4,5,6},
                {4,5,6,7,8}
        };  //C/C++创建二维数组的一种方式

其存放方式类似于下图。

a[i]表示引用第i个子数组,也就是二维数组的第i行,而它本身也是一个数组,因此可以通过a[i][j]访问这个内层数组的第j项。同时由于可以单独的存取数组的某一行,所以也可以对两行进行调换。

package shangji;
import java.lang.reflect.Array;
import java.util.Arrays;
public class DoubleArray {
    public static void main(String[] args) {
        int[][]a={
                    {1,2,3},
                    {2,3,4,5},
                    {4,5,6,7,8}
                };  //创建二维数组的一种方式
      for (int i[]:a)
      {
          for (int j : i)
              System.out.print(j);
          System.out.println();
      }
        int []temp=a[0];
        a[0]=a[1];
        a[1]=temp;
        System.out.println("-----------华丽的分割线---------");
        for (int i[]:a)
        {
            for (int j : i)
                System.out.print(j);
            System.out.println();
        }
    }
}


注意这一行代码

 for (int i[]:a) //先获取内层的数组
      {
          for (int j : i) //遍历内层数组元素
              System.out.print(j);
          System.out.println();
      }

我使用了for_each这种遍历方法,如果不了解这种遍历方法的可以先了解一下。
首先我们知道Java中的二维数组是数组的数组,因此如果我们需要得到内层数组的某一个数据,我们应该先得到一个内层数组,然后对这个内层数组进行遍历,这也就是上面代码的思想。

在C++中,Java声明
double[][] balances = new double[10][6];// Java
不同于
double balances[10][6];// C++
也不同于
double (balances)[6] = new doub1e[10][6];//C++
而是分配了一个包含10个指针的数组:double
* balances = new double*[10];// C++
然后,指针数组的每一个元素被填充了一个包含6个数字的数组:
for (i = 0;i <10; i++)
balances[i] = new double[6];
庆幸的是,当创建new double[10][6]时,这个循环将自动地执行。当需要不规则的数组时,只能单独地创建行数组。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号