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浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器



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

步骤 1 :

初始化二维数组

edit
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 :

练习-二维数组

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

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

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

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

答案-二维数组

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

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


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公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2023-05-22 随笔
我的咖啡没有卡布奇洛




随笔
public class Main {
    public static void main(String[] args) {
        int a[][] = new int[5][5];
        for(int i = 0;i < 5;i++)
            for(int j = 0;j < 5;j++){
                a[i][j]=(int)(Math.random()*100);
            }
        Dx Sy = new Dx();
        Sy.Dy(a);
        System.out.println(Sy.Dx(a));
    }
}

public class Dx {
    int a = 0;
    public void Dy(int b[][]){
        for(int i = 0;i < 5;i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print(b[i][j]);
                System.out.print(" ");
            }
            System.out.println();
        }
    }

    public int Dx(int b[][]){
        for(int i = 0;i < 5;i++) {
            for (int j = 0; j < 5; j++) {
                if(b[i][j]>a){
                    a = b[i][j];
                }
            }
        }
        return a;
    }
}

							


6 个答案

Asure47
答案时间:2024-03-04
javanoobbbb
答案时间:2023-12-26
答案

玉子
答案时间:2023-09-20
int[][] a= new int[5][5]; int max=0; int zbX=0; int zbY=0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5 ; j++) { a[i][j]=(int) (Math.random() * 100); System.out.print("a["+i+"]"+"["+j+"]"+a[i][j]+" "); if (a[i][j]>max){ max=a[i][j]; zbX=i; zbY=j; } } } System.out.println("/////////////////////"); System.out.println(max+","+"a["+zbX+"]"+"["+zbY+"]");

CharlieLong
答案时间:2023-09-08
加长版海贼
答案时间:2023-08-08
借楼上答案,觉得比较好

073226329Fgs
答案时间:2023-06-21
使用for的强化版



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2022-08-24 二维数组答案
logiczqr




如题
public class Array03 {
    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);
            }
        }
        int max=0;
        int index01=0;
        int index02=0;
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                System.out.print(a[i][j] + "\t\t\t");
                if (a[i][j]>max){
                    max=a[i][j];
                    index01=i;
                    index02=j;
                }
            }
            System.out.println();
        }
        System.out.println("数组中最大值是:"+max);
        System.out.println("其坐标是:["+index01+"]["+index02+"]");
    }
}

							


22 个答案

CGCG
答案时间:2024-03-14
丸子丸子
答案时间:2023-10-18
后山人
答案时间:2023-10-07
二维数组是: [94, 82, 97, 47, 40] [49, 0, 52, 61, 20] [66, 57, 96, 51, 23] [63, 12, 34, 47, 99] [64, 23, 65, 87, 54] 最大数是:99 最大数坐标是:[3][4]

see-tomorrow
答案时间:2023-06-06
public static void main(String[] args) { int max=0; int x=0; int y=0; //定义一个5*5的数组 int [][]array=new int[5][5]; //使用随机数填充该数组 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length; j++) { array[i][j]=(int)(Math.random()*100); System.out.print(array[i][j]+" "); } System.out.println(" "); } //找出数组中最大的值 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length; j++) { if(max<array[i][j]){ max=array[i][j]; x=i; y=j; } } } //打印出数组中最大值的二维坐标 System.out.println("最大值为"+max); System.out.println("坐标为"+x+","+y); }

lcl666
答案时间:2023-05-14
package 梁; import java.util.Scanner; public class aaa { public static void main(String[] args) { int a[][]=new int[5][5]; int i=0, j = 0,x=0,y=0; int max=0; Scanner s=new Scanner(System.in); for(i=0;i<5;i++) { for(j=0;j<5;j++) { a[i][j]=s.nextInt(); System.out.print(a[i][j]+" "); } System.out.println(); } for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(max<a[i][j]) { max=a[i][j]; x=i; y=j;} } } System.out.println("找出来最大值为:"+max); System.out.println("其坐标为:"+x+","+y); } }

Aeclar
答案时间:2023-05-05
用for增强型

Zezin
答案时间:2023-04-22
Closen1
答案时间:2023-03-21
public class HelloWorld { public static void main(String[] args) { int a[][]=new int[5][5]; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { a[i][j]=(int)(Math.random()*100); System.out.print(a[i][j]+" "); } System.out.println(" "); } int max=0,x=0,y=0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if(max<a[i][j]){ max=a[i][j]; x=i; y=j; } } }System.out.println("数组中最大的数为:"+max); System.out.println("该数组的坐标为:["+x+"]"+"["+y+"]"); } }

月沉
答案时间:2023-03-15
ahao2025
答案时间:2023-03-10
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); } } int max = a[0][0]; int m = 0; int n = 0; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { System.out.print(a[i][j] + " "); if (max < a[i][j]) { max = a[i][j]; m = i; n = j; } } System.out.println(); } System.out.println("最大值:" + max); System.out.println("坐标:[" + m + "][" + n + "]");

莫諾
答案时间:2023-03-07
......haha

伊亻
答案时间:2023-01-12
learn杜
答案时间:2023-01-11
大不必
答案时间:2022-12-04
int[][] a = new int[5][5]; int b = a[1][1]; String c = ""; for (int i=0; i<a.length; i++){ for (int j=0;j<a[i].length;j++){ a[i][j] = (int) (Math.random()*100); if (a[i][j] > b ){ b = a[i][j]; c = (i+1)+"-"+(j+1); } } System.out.println(Arrays.toString(a[i])); } System.out.println("最大数值是:"+ b); System.out.println("坐标是:"+ c);

54Mozu
答案时间:2022-11-17
lanren9
答案时间:2022-11-12
Rocco_32
答案时间:2022-10-01
路子
答案时间:2022-09-25
qqqppp
答案时间:2022-09-21
public class B1 { public static void main(String[] args){ int[][] a = new int[5][5]; int max = a[0][0]; int x = 0; int y = 0; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a.length; j++) { a[i][j] = (int) (Math.random()*100); System.out.println(a[i][j]); if (a[i][j] > max) { max = a[i][j]; x = i; y = j; } } } System.out.println("==============="); System.out.println("最大值是" + max); System.out.println("==============="); System.out.println("坐标是[" + x + "]" + "[" + y + "]"); } }

青郎
答案时间:2022-09-12
int temp1 = 0; int x = 0 ; int y = 0; for (int i = 0; i < b.length; i++) { // 求 二维数组长度 for (int j = 0; j < b[i].length; j++) { // 求 一维数组长度 b[i][j] = (int) (Math.random() * 100) ; //随机数 一维数组填充 if(i==0 &&j==0){ // 暂存第一个数 temp1 = b[i][j]; } if(i>=0&&j>=1){ // 当遍历不同的一维数组比较 if(b[i][j] > temp1){ // 第一个数和第二数字比较 temp1 = b[i][j]; //如果大就交换 x = i; y = j; //记录坐标值 } } } System.out.println(b[i][0] + " " +b[i][1]+ " " +b[i][2]+ " " + b[i][3] + " " +b[i][4]); //输出二维数组 } System.out.println("最大数" + temp1); System.out.println("坐标值" + x + " " + y );

衬衫bc
答案时间:2022-09-03
仅供参考

蓝pang子
答案时间:2022-08-25



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2022-03-04 答:
2022-02-13 练习
2022-01-28 拓展数组,可收入长宽,可定义概率


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 136 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 基础-数组-二维数组 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图