java基础:java中的二维数组

二维数组的概念:

一个元素为一维数组的数组。

格式1:

数据类型[][] 数组名 = new 数据类型[m][n];

m:表示这个二维数组有多少个一维数组。

n:表示每一个一维数组的元素有多少个。

注意:

A:以下格式也可以表示二维数组

a:数据类型 数组名[][] = new 数据类型[m][n];

b:数据类型[] 数组名[] = new 数据类型[m][n];

B:注意下面定义的区别

int x;

int y;

int x,y;

int[] x;

int[] y[];

int[] x,y[];


demo:


class Array2Demo {

public static void main(String[] args) {

//定义一个二维数组

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

//定义了一个二维数组arr

//这个二维数组有3个一维数组的元素

//每一个一维数组有2个元素

//输出二维数组名称

System.out.println(arr); //地址值        [[[email protected]

//输出二维数组的第一个元素一维数组的名称

System.out.println(arr[0]); //地址值        [[email protected]

System.out.println(arr[1]); //地址值        [[email protected]

System.out.println(arr[2]); //地址值        [[email protected]

//输出二维数组的元素

System.out.println(arr[0][0]); //0

System.out.println(arr[0][1]); //0

}

}

二维数组的第二种格式:

数据类型[][] 数组名 = new 数据类型[m][];

m:表示这个二维数组有多少个一维数组。

列数没有给出,可以动态的给。这一次是一个变化的列数


Demo:


class Array2Demo2 {

public static void main(String[] args) {

//定义数组

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

System.out.println(arr);        //[[[email protected]

System.out.println(arr[0]); //null

System.out.println(arr[1]); //null

System.out.println(arr[2]); //null

//动态的为每一个一维数组分配空间

arr[0] = new int[2];

arr[1] = new int[3];

arr[2] = new int[1];

System.out.println(arr[0]); //[[email protected]

System.out.println(arr[1]); //[[email protected]

System.out.println(arr[2]); //[[email protected]

System.out.println(arr[0][0]); //0

System.out.println(arr[0][1]); //0

//ArrayIndexOutOfBoundsException

//System.out.println(arr[0][2]); //错误

arr[1][0] = 100;

arr[1][2] = 200;

}

}

二维数组的第三种格式:

基本格式:

数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};

简化版格式:

数据类型[][] 数组名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};


Demo:


class Array2Demo3 {

public static void main(String[] args) {

//定义数组

int[][] arr = {{1,2,3},{4,5},{6}};

System.out.println(arr);

System.out.println(arr[0]);

System.out.println(arr[1]);

System.out.println(arr[2]);

System.out.println(arr[0][0]); //1

System.out.println(arr[1][0]); //4

System.out.println(arr[2][0]); //6

System.out.println(arr[0][1]); //2

System.out.println(arr[1][1]); //5

//越界

System.out.println(arr[2][1]); //错误

}

}

二维数组遍历:

外循环控制的是二维数组的长度,其实就是一维数组的个数。

内循环控制的是一维数组的长度。


demo:


class Array2Test {

public static void main(String[] args) {

//定义一个二维数组

int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};

//请问谁代表{1,2,3}

//arr[0]就是第一个数组

//arr[0] = {1,2,3};

for(int x=0; x<arr[0].length; x++) {

System.out.println(arr[0][x]);

}

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

for(int x=0; x<arr[1].length; x++) {

System.out.println(arr[1][x]);

}

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

for(int x=0; x<arr[2].length; x++) {

System.out.println(arr[2][x]);

}

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

//用循环改进

for(int x=0; x<3; x++) {

for(int y=0; y<arr[x].length; y++) {

System.out.print(arr[x][y]+" ");

}

System.out.println();

}

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

//这个时候,注意了,3是我们根据上面的代码得出来的

//但是,它不能针对任何的数组都可以这样

//所以,我们应该想办法改进

//其实,外面的这个循环的长度就是二维数组的长度

for(int x=0; x<arr.length; x++) {

for(int y=0; y<arr[x].length; y++) {

System.out.print(arr[x][y]+" ");

}

System.out.println();

}

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

//用方法改进

//调用方法

printArray2(arr);

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

//我们再来一个列数是变化的

int[][] arr2 = {{1,2,3},{4,5},{6}};

printArray2(arr2);

}

/*

需求:遍历二维数组

两个明确:

返回值类型:void

参数列表:int[][] arr

*/

public static void printArray2(int[][] arr) {

for(int x=0; x<arr.length; x++) {

for(int y=0; y<arr[x].length; y++) {

System.out.print(arr[x][y]+" ");

}

System.out.println();

}

}

}

二维数组的

公司年销售额求和

某公司按照季度和月份统计的数据如下:单位(万元)

第一季度:22,66,44

第二季度:77,33,88

第三季度:25,45,65

第四季度:11,66,99

分析:

A:把题目的数据用二维数组来表示

int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};

B:如何求和呢?

求和其实就是获取到每一个元素,然后累加即可。

C:定义一个求和变量sum,初始化值是0。

D:通过遍历就可以得到每一个二维数组的元素。

E:把元素累加即可。

F:最后输出sum,就是结果。

求和:


demo:


class Array2Test2 {

public static void main(String[] args) {

//把题目的数据用二维数组来表示

int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};

//定义一个求和变量sum,初始化值是0。

int sum = 0;

//通过遍历就可以得到每一个二维数组的元素。

for(int x=0; x<arr.length; x++) {

for(int y=0; y<arr[x].length; y++) {

//把元素累加即可。

sum += arr[x][y];

}

}

//最后输出sum,就是结果。

System.out.println("一年的销售额为:"+sum+"万元");

}

}

时间: 2024-10-27 07:36:04

java基础:java中的二维数组的相关文章

Java基础---Java中的二维数组(三十四)

Java 中的二维数组 所谓二维数组,可以简单的理解为是一种"特殊"的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1. 声明数组并分配空间 或者 如: 2. 赋值 二维数组的赋值,和一维数组类似,可以通过下标来逐个赋值,注意索引从 0 开始 也可以在声明数组的同时为其赋值 如: 3. 处理数组 二维数组的访问和输出同一维数组一样,只是多了一个下标而已.在循环输出时,需要里面再内嵌一个循环,即使用二重循环来输出二维数组中的每一个元素.如: 运行

java中的二维数组

简单讲:java中的二维数组就是"特殊的一维数组",称为一维数组中的一维数组. 只不过元素是一维数组而已. 也是有两种初始化方式:静态初始化和动态初始化. 访问最后一个元素: int[] []a=? a[a.length-1][a[a.length-1].length-1]这个表示是最后一个元素 遍历二维数组: for(int i=0;i<a.length;i++){     for(int j=0;j<a[i].length;j++){         System.ou

Java中的“二维”数组

二维数组是一维数组,其数组元素是一维数组:三位数组也是一维数组,其数组元素是二维数组. 从这个角度看,Java语言里没有多为数组. class ArrayList {  public static void main(String[] args) { int[][] arr = new int [3][3];//定义一个二维数组 int sum =0;//记录长度 for(int a = 0 ;a<arr.length;a++) //获取行的长度  //a数组当成一位数组处理 { for(int

Java 中的二维数组

所谓二维数组,可以简单的理解为是一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1.声明数组并分配空间 2.赋值 二维数组的赋值,和一维数组类似,可以通过下标来逐个赋值,注意索引从 0 开始 也可以在声明数组的同时为其赋值 如: 3.处理数组 二维数组的访问和输出同一维数组一样,只是多了一个下标而已.在循环输出时,需要里面再内嵌一个循环,即使用二重循环来输出二维数组中的每一个元素.如:

【二】在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否函数该整数。 ```java public class Test { /** 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否函数该整数. public class Test { /** 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否函数该整数. */ public static void main(String[] args) { int[][] arr =

java list map转换成二维数组

/** * *@Title: ListToArray *@Description: list列表转换成二维数组 *@Author: Administrator *@Since: 2018年1月7日下午2:01:25 *@param: @param list *@param: @param KeyLenght每行的列数,按最长的计算 *@param: @return *@return Object[][] */ private Object[][] ListToArray(List<Map<St

C++中关于二维数组作为函数参数传递的问题

在做数据结构迷宫实验的时候,要生成一个二维数组存储迷宫数据,为了保证程序的模块化,将生成部分单独放进一个函数migongsc()里.大致代码如下: 问题的关键就集中在了如何将主函数中声明的二维数组migong[8][9]传递到自定义函数中去. 耗费了一个晚上的时间,我总共整理出了三种办法: 方法1:模拟编译器寻址(本法来自CSDN博客,原文: http://blog.csdn.net/jatix/archive/2004/08/29/88150.aspx). 大体意思为:将二维数组当作参数的时候

第五天:C基础之递归与二维数组

写递归函数时要明确结束条件和递归体. 练习了几个递归函数: 首先是斐波那契数,前几天写过的程序,今天写的时候还是出现了问题.在判断结束条件的时候写错.写成(i==1&&i==2) 这个是有明显的逻辑错误. 1 斐波那契#include<stdio.h> 2 int fbnq(int i) 3 { 4 if(i==1) 5 return 1; 6 if(i==2) 7 return 1; 8 int ret = fbnq(i-1)+fbnq(i-2); 9 10 return r

在python中定义二维数组

发表于 http://liamchzh.0fees.net/?p=234&i=1 一次偶然的机会,发现python中list非常有意思. 先看一段代码 [py]array = [0, 0, 0]matrix = [array*3]print matrix## [[0,0,0,0,0,0,0,0,0]][/py] 这段代码其实没有新建一个二维数组 再看一段代码 [py]array = [0, 0, 0]matrix = [array] * 3print matrix## [[0, 0, 0], [