java(七)数组(二维数组)

您所在的位置:网站首页 java二维数组怎么输入数据格式 java(七)数组(二维数组)

java(七)数组(二维数组)

2024-07-12 13:39| 来源: 网络整理| 查看: 265

二维数组

二维数组简单来说就是一个由行和列组成的一个表格,也就是数学中的矩阵。我们在这个矩阵中访问元素的话,是根据元素的行角标和列角标所确定的。

二维数组具体是在内存中如何存储的呢?

无论是二维数组,还是多维数组,其实它们本身就是一个一维数组;尤其对于二维数组而言,无非就是一个一维数组,只不过该一维数组中的每一个元素是另一个一维数组罢了!

 二维数组:二维数组行列组成的表格,格子中内容就是二维数组的元素。

 

 二位数组存储:依旧是在堆内存 ,二维数组就是多个一维数组组成

 创建二维数组:

int[][]  matrix=new int[3][4];  创建一个3行4列的二维数组,元素默认都是0

int[][] matrix=new int[][]{ 

    {1,2,3,4} ,

    {5,6,7,8} ,

    {9,10,11,12} 

};

创建个指定元素的二维数组

int[][] matrix={ 

    {1,2,3,4} ,

    {5,6,7,8} ,

    {9,10,11,12} 

};

锯齿矩阵/二维数组

int[][] matrix={ 

    {1,2,3,4} ,

    {5,6,7} ,

    {8,9},

    {10} 

};

特别的,如果一个二维数组的行和列相等的话,也称之为是方阵

代码示例: 

class Test01{ public static void main(String[] args){ int[][] matrix={ {1,2,3,4}, {5,6,7,8}, {8,7,6,5}, {4,3,2,1} }; //matrix.length 表示的就是最外层那个一维数组的长度 行数 //matrix[i] 表示的是最外层那个一维数组当中角标i的那个元素 只不过这个元素也是一个一维数组 //matrix[i].length 表示的是这个一维数组元素的长度(当前行的长度) //matrix[i][j] 表示的就是这个一维数组元素中角标j的那个元素 for(int i=0;i arr [a,b,c]       人:姓名 年龄 性别 身高 体重....

 复合型数据 : 指的就是由多个基本数据或其他引用数据组成的一个数据。

 形参变量永远不可能去改变实参中已储存的数据地址 除非return 实参且接收, 就算形参变量所存储的数据地址被改变 那也是改变形参自己 与实参无关。 无非是:        实参本身指向的是一个对象, 然后把这个对象的地址传递给了形参;形参就可以通过该地址去堆内存中找对象,可以修改对象中的数据;实参再去访问对象时,对象中的数据就已经被改变; 因为实参和形参目前使用操作的都是同一个对象

  总结:

        无论实参还是形参 实参就是把变量空间所存的地址给了形参而已;  他们都是变量! 所以对于变量的修改而言,主要分两种!

1.要么改变该变量空间所存储的地址              int a=3;               a=7;              int[] arr=new int[]{1,2,3};              arr=new int[]{3,2,1};

2.要么改变该变量空间所存储的地址所指向的那个对象中的数据

        int[] arr=new int[]{1,2,3};

        arr[0]=10;  

对与基本数据类型而言,不能进行第2个操作。

 示例:

class Test02{ public static void main(String[] args){ int a=3; int b=7; swap(a,b); System.out.printf("a=%d,b=%d\n",a,b);//结果是a=3;b=7 int[] arr={3,7}; swap(arr[0],arr[1]); System.out.printf("arr[0]=%d,arr[1]=%d\n",arr[0],arr[1]);//结果是arr[0]=3,arr[1]=7 swap(arr); System.out.printf("arr[0]=%d,arr[1]=%d\n",arr[0],arr[1]);//结果是arr[0]=3,arr[1]=7 swap2(arr); System.out.printf("arr[0]=%d,arr[1]=%d\n",arr[0],arr[1]);//结果是arr[0]=10,arr[1]=20 } public static void swap(int m,int n){ m=7; n=3; } public static void swap(int[] arr){ arr[0]=7; arr[1]=3; } public static void swap2(int[] arr){//0xabc arr=new int[]{10,20}; } } 习题练习 1.

/* 数据: 输入的二维数组 步骤: 1.输入一个3*4的矩阵 2.打印每列的和 分析: (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) 累加行的时候 行不动 列动 累加列的时候 列不动 行动 */ import java.util.*; class Demo05_09{ public static void main(String[] args){ /* (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) 累加行的时候 行不动 列动 累加列的时候 列不动 行动 */ //1.输入一个3*4的矩阵 Scanner scanner=new Scanner(System.in); System.out.println("Enter numbers:"); double[][] matrix=new double[3][4]; for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3