首页 > 其他分享 >第6周 6.2 多维数组

第6周 6.2 多维数组

时间:2024-10-12 14:12:19浏览次数:1  
标签:arr 遍历 int 二维 6.2 数组 多维 new

3.9.3 二维数据创建

二维数组主要用于二维关系表示。
二维数组可以分规则二维数组和不规则二维数组。规则二维数组表示行列数相同的二维数组,不规则二维数组表示行列数不同的二维数组。

1.定义二维数组

熂类型名 [][] 数组名 = new 数据类型[行数][列数];

2.二维数据初始化和遍历

//规则二维数组
//静态初始化
int[][] arr0 = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};

//动态初始化
int [][] arr = new int[3][4];//3行4列的二维数组
arr[0][0] = 1;arr[0][1] = 2;arr[0][2] = 3;arr[0][3] = 4;
arr[1][0] = 5;arr[1][1] = 6;arr[1][2] = 7;arr[1][3] = 8;
arr[2][0] = 9;arr[2][1] = 10;arr[2][2] = 11;arr[2][3] = 12;

//遍历二维数组
for(int[] i:arr){ // 遍历行,每一行是一个一维数组i
    for(int j:i){  // 遍历列
        System.out.print(j+" ");
    }
    System.out.println();
}

用for循环遍历二维数组,外层循环遍历行,内层循环遍历列。
数组名.length 获取数组长度,即有多少行。
数组名[i].length 获取第i行数组长度,即有多少列。

//不规则二维组
//静态初始化
int [][] arrStatic = {{1,2,3},{4,5},{6,7,8,9}};

//动态初始化
int [][] arr = new int[3][];
arr[0] = new int[]{1,2,3,4};
arr[1] = new int[]{5,6};
arr[2] = new int[]{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();
}

3.矩阵转置

将二维数据的行列互换,称为矩阵转置。实现代码如下:

img

//定义并初始化一个2行3列的矩阵
int a[][]=new int[3][4];
for(int i=0;i<3;i++)
{
    for(int j=0;j<4;j++)
    {
        a[i][j]=(j+1)+4*i;
        System.out.printf("%2d ",a[i][j]);
    }
    System.out.println(); //换行
}

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

//矩矩阵转置,将矩阵a转置为矩阵b
int b[][]=new int[4][3];
for(int i=0;i<a.length;i++) //遍历矩阵a的行
{
    for(int j=0;j<a[i].length;j++) //遍历矩阵a的列
    {
        b[j][i]=a[i][j]; //矩阵转置,将a的下标互换后存入b中,连续将b的i列存满后,a再换行
    }    
}

//输出矩矩阵b
for(int[] i:b){
    for(int j:i)
    {
        System.out.printf("%2d ",j);
    }
    System.out.println(); //换行
}

标签:arr,遍历,int,二维,6.2,数组,多维,new
From: https://www.cnblogs.com/bcd589/p/18438285

相关文章

  • 第6周 6.1 一维数组
    6.数组编程语言中通常用变量来描述零散的、相互没有联系的单个数据,用数组来描述一组相互有联系的数据。Java数组是具有相同数据类型的一组数据组成的、有序的集合,数组中的每个数据称为元素,每个元素都有一个编号,这个编号称为下标,下标从0开始。java中数组是引用类型,数组元素可以......
  • 59螺旋数组
    按照边遍历的顺序进行赋值,可以将整个任务分为多个螺旋完成,每个螺旋按边打印。最外层螺旋起始分别是(0,0)->(0,n-1)->(n-1.n-1)->(n-1,0)->(1,0),螺旋的最后一条边会比前三条短1,同时每次更新打印螺旋需要注意螺旋的边会减少1,因此在每层螺旋的最后一条边打印前更新长度即可。最后注意......
  • 【汇总】Linux shell 数组使用
    前言全局说明【汇总】Linuxshell数组使用一、说明环境:Ubuntu18.04.6LTS(Linuxqt-vm5.4.0-150-generic#167~18.04.1-UbuntuSMPWedMay2400:51:42UTC2023x86_64x86_64x86_64GNU/Linux)二、创建数组2.1声明一个空数组test_array=()2.2创建数组test......
  • mongo对文档中数组进行过滤的三种方法
    前言在mongo中数据类型有很多种,常见的包括:数据类型例子描述String{"x":"foot"}字符串。存储数据常用的数据类型。在MongoDB中,UTF-8编码的字符串才是合法的。Integer{"x":1}整型数值。用于存储数值。根据你所采用的服务器,可分为32位或64位。......
  • Idea android应用kotlin-stdlib-1.8.20 kotlin-stdlib-jdk81.6.21冲突
    Ideaandroid应用kotlin-stdlib-1.8.20kotlin-stdlib-jdk81.6.21冲突idea中开发android应用,安装android插件后,新建项目,然后各种包更新,最后运行时提示kotlin-stdlib-1.8.20kotlin-stdlib-jdk8:1.6.21冲突错误如下:FAILURE:Buildfailedwithanexception.Whatwentwrong:......
  • C# unsafe 快速复制数组
    ///<summary>///复制内存///</summary>///<paramname="dest">目标指针位置</param>///<paramname="src">源指针位置</param>///<paramname="count">字节长度</param>......
  • 代码随想录Day23 | LeetCode 455. 分发饼干、LeetCode 53. 最大子数组和、LeetCode 37
    LeetCode455.分发饼干贪心就是干classSolution:deffindContentChildren(self,g:List[int],s:List[int])->int:g.sort(reverse=True)s.sort(reverse=True)i=j=0res=0whilei<len(g)andj<len(......
  • Python数据分析NumPy和pandas(五、NumPy高维数组的数学计算 2)
    一、Numpy的花式索引FancyIndexing花式索引FancyIndexing是NumPy采用的一个术语,用于描述使用整数数组进行索引。1.举例:用元组来创建一个8x4的二维数组zeros,并循环赋值:importnumpyasnparr=np.zeros((8,4))#为二维数组arr每行赋值foriinrange(8):arr[i......
  • HALCON数据结构之数组
    1.1Tuple数组的基本操作*1、Tuple数组元素的创建*1.1、创建一个空数组assign([],empty_tuple)//采用赋值操作empty_tuple:=[]//采用赋值操作*1.2、创建一个整型数组assign([1,2,3,4,5,6,7,8,9,10],tupleInt1)//采用赋值操作tupleInt1:=[1,0,3,4,5,6,7,8,9]/......
  • 多维标度法
    只知道n个客体之间的某种距离,而不清楚具体指标的情况。多维标度法要将这些客体在低维空间展现出来,从而揭示n个客体的真实结构。经典多维标度[y,eigvals]=cmdscale(d)%函数cmdscale产生两个输出,第一个Y是包含重构点的矩阵,%第二个eigvals是被称为标量积矩阵(最简单的形式就是......