how2j.cn

这是一个一维数组, 里面的每一个元素,都是一个基本类型int
int a[] =new int[]{1,2,3,4,5};

这是一个二维数组,里面的每一个元素,都是一个一维数组
所以二维数组又叫数组的数组
int b[][] = new int[][]{
{1,2,3},
{4,5,6},
{7,8,9}
};

本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



10分32秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



步骤 1 : 初始化二维数组   
步骤 2 : 练习-二维数组   
步骤 3 : 答案-二维数组   

步骤 1 :

初始化二维数组

public class HelloWorld { public static void main(String[] args) { //初始化二维数组, int[][] a = new int[2][3]; //有两个一维数组,每个一维数组的长度是3 a[1][2] = 5; //可以直接访问一维数组,因为已经分配了空间 //只分配了二维数组 int[][] b = new int[2][]; //有两个一维数组,每个一维数组的长度暂未分配 b[0] =new int[3]; //必须事先分配长度,才可以访问 b[0][2] = 5; //指定内容的同时,分配空间 int[][] c = new int[][]{ {1,2,4}, {4,5}, {6,7,8,9} }; } }
public class HelloWorld {
	public static void main(String[] args) {
	   //初始化二维数组,
	   int[][] a = new int[2][3]; //有两个一维数组,每个一维数组的长度是3
	   a[1][2] = 5;  //可以直接访问一维数组,因为已经分配了空间
	     
	   //只分配了二维数组
	   int[][] b = new int[2][]; //有两个一维数组,每个一维数组的长度暂未分配
	   b[0]  =new int[3]; //必须事先分配长度,才可以访问
	   b[0][2] = 5;
	   
	   //指定内容的同时,分配空间
	   int[][] c = new int[][]{
			   {1,2,4},
			   {4,5},
			   {6,7,8,9}
	   };

    }
}
步骤 2 :

练习-二维数组

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
定义一个5X5的二维数组。 然后使用随机数填充该二维数组。
找出这个二维数组里,最大的那个值,并打印出其二维坐标

0-100的 随机整数的获取办法有多种,下面是参考办法之一:

(int) (Math.random() * 100)

Math.random() 会得到一个0-1之间的随机浮点数,然后乘以100,并强转为整型即可。
练习-二维数组
步骤 3 :

答案-二维数组

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

7分4秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)


public class HelloWorld { public static void main(String[] args) { int a[][] = new int[5][5]; // 初始化这个数组 for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { a[i][j] = (int) (Math.random() * 100); } } // 打印这个数组的内容: for (int[] row : a) { for (int each : row) { System.out.print(each + "\t"); } System.out.println(); } int max = -1;// 最大值 // 最大值的坐标 int target_i = -1; int target_j = -1; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { if (a[i][j] > max) { max = a[i][j]; target_i = i; target_j = j; } } } System.out.println("找出来最大的是:" + max); System.out.println("其坐标是[" + target_i + "][" + target_j + "]"); } }


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-01-09 简单写的,也许还可以优化
猪老三的男朋友



简单写的,也许还可以优化
import java.util.*;
	public class HelloWorld {
		public static void main(String[] args){
			int [][] arr=new int[5][5];
			for(int i=0;i<arr.length;i++){
				for(int j=0;j<arr[i].length;j++){
					arr[i][j]=(int)(Math.random()*100);
				}
			}
			System.out.println("随机产生的二维数组是:");
			for(int i=0;i<arr.length;i++){
				for(int j=0;j<arr[i].length;j++){
					System.out.print(arr[i][j]+"\t");
				}
				System.out.println();
			}
			//选择排序
			int max=arr[0][0];
			int row=0;
			int col=0;
			for(int i=0;i<arr.length;i++){
				for(int j=0;j<arr[i].length;j++){
					if(max<arr[i][j]){
						max=arr[i][j];
						row=i;
						col=j;
					}
				}
			}
			System.out.println("数组中的最大值为:"+max+"对应的数组下标为:"+row+"\t"+col);
		}
	}

							






答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-01-03 交作业
zixue



虽然写出了答案 可是却不太满意,因为想用增强for实现
public class erweishuzu
{
	
	public static void main(String[] args)
	{	int temp=0,x=0,y=0;
	
		int[][] a=new int[5][5];
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a.length;j++)
			{
				a[i][j]=(int)(Math.random()*100);
			}
		}
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a.length;j++)
			{
				System.out.print(a[i][j]+"\t");
				if(a[i][j]>temp)
				{
					temp=a[i][j];
					x=j;
					y=i;
				}
			}
			System.out.println();
		}
		System.out.println("最大数是"+temp+"位置是:"+"x"+"["+x+"]"+"y"+"["+y+"]");
	}
	
}

							


1 个答案

hE1L0WoR1d 答案时间:2018-01-08




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-12-21 交作业
2017-12-09 如果 题目要求不是 5 * 5 而是 5* 6呢?
2017-12-02 假如二维数组中两数相同且皆为最大值,如何输出两个坐标
2017-11-23 交作业
2017-11-23 答案-左对齐输出数组
2017-11-21 j为什么要小于arr[i].length
2017-11-18 答案-一枚菜鸟
2017-11-02 完成!求指点
2017-10-28 老师,我想比较一下两种代码的区别
2017-10-22 交作业
2017-10-20 二维数组最大值
2017-10-20 交作业
2017-10-03 个人代码
2017-09-29 如果随机得到的数组元素的最大值有两个,怎么获取它的坐标
2017-09-23 交作业
2017-09-20 得到的结果有一次不对的
2017-09-13 输出二维坐标有没有简单的方法
2017-09-13 答案,完美
2017-08-29 几个问题,麻烦站长看见了解答下,其他前辈也请赐教。
2017-08-27 我写的
2017-08-18 二位数组练习题
2017-08-16 【站长可忽略】 抽象出了一些方法,可供参考
2017-08-11 可以说是最丑陋的答案了
2017-07-22 交流一下
2017-07-10 作业
2017-07-06 答案
2017-06-08 交作业
2017-06-07 结果
2017-06-01 交作业
2017-05-14 学习交流
2017-05-04 二维数组求最大值
2017-04-19 二维数组生成 并寻找最大值
2017-03-27 每次写都觉得绕的有点远啊
2017-03-27 答案
2017-02-24 答案
2017-02-08 关于二维数组题目我的答案
2017-01-23 用增强型for循环写二维数组
2016-12-15 做了半个多小时才做出来。。。
2016-12-14 求得最大值 以及 最大出现的次数,需要的看下
2016-12-12 增强循环如何遍历二维数组
2016-12-10 二维数组
2016-07-16 没有问题,我上传我的代码
2016-07-08 高级写法貌似
2016-06-11 二维数组求最大值输出结果有问题!




提问之前请登陆
关于 JAVA 基础-数组-二维数组 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 389538688
站长会在每个工作日早上尽量回答提问(如果有漏掉没有回答的,请进群提醒一下)
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
站长是玻璃心,提问的时候请语气温柔些 kiss~
截止2017-5-19日累计提问 1638个,站长回答了 1546个
截止2017-8-15日累计提问 2788个,站长回答了 2544个

上传截图