【无标题】Java二维数组随机赋值和找到该行该列的最大元素

        今日学习Java数组过程中,碰到如何给一个二维数组赋值和找到该行该列中最大元素的问题。向大家分享一些我的学习经验。

数组的初始化:

         数组的初始化有两种方法:静态初始化和动态初始化。

静态初始化:

格式一:

        直接为每个元素赋初始值,直接分配内存空间,一般为数组元素较少的情况下使用。形式为:

        数据类型 数组名[]={值1,值2,值3};

        例子:初始化一个长度为3的整形数组

        int a[]={1,2,3};

格式二:

        通过scanner系统类进行键入初始化

        

可以通过Scanner类实现从控制台输入来初始化一维数组。下面是一个Java示例代码:


import java.util.Scanner;

public class InitializeArrayWithScanner {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入整数数组元素个数:");
        int length = scanner.nextInt();//通过键入数组长度
        int[] arr = new int[length];//新建一个长度为键入数组长度的数组对象

        System.out.println("请逐个输入数组元素:");
        for (int i = 0; i < arr.length; i++) {
            arr[i] = scanner.nextInt();
        }

        System.out.print("您输入的数组为:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

        对于静态初始化而言,需在声明一个数组时就赋值,且在元素较少时才使用。显得极为不便

动态初始化

        动态初始化需要使用new操作来分配内存空间,既可以在声明时 初始化,又可以在声明后初始化。

格式一:

        使用new运算符指定数组大小后进行初始化。

        类型 数组名[];

        数组名=new 类型[数组长度]

        例如:

int c[]=new int[3];
int c[];
c=new int[3];

        例如:

int []a=new int[3];
a[0]=1;
a[1]=2;
a[2]=3;

格式二:

        使用new运算符指定数组元素的值

type[]array=new type[]{值1,值2,值3};

数组的随机赋值

        对于数组的随机赋值需要Random类,需要该类才能产生随机数。

import java.util.Random;

 对二维数组进行随机赋值

int data[][]=new int[5][6];//通过new运算符构造一个五行六列的二维数组
		Random random=new Random();//创建一个新的random对象
		for(int i=0;i<data.length;i++) {//使用for循环给二维数组随机赋值
			for(int j=0;j<data[i].length;j++) {
				data[i][j]=random.nextInt(100);//产生100以内的随机数
			}
		}

找到该行该列的最大元素

for (int x = 0; x < data.length; x++) { // 遍历每一行数组的元素
			        int maxInRow = data[x][0];
			        int maxColIndex = 0;
			        for (int j = 0; j < data[x].length; j++) { // 找到该行最大的元素和其在列中的位置
			            if (data[x][j] > maxInRow) {
			                maxInRow = data[x][j];
			                maxColIndex = j;
			            }
			        }
			        // 判断该元素是否也是其所在列的最大值
			        boolean isMaxInCol = true;
			        for (int k = 0; k < data.length; k++) {
			            if (data[k][maxColIndex] > maxInRow) {
			                isMaxInCol = false;
			                break;
			            }
			        }
			        // 如果满足条件,则输出该元素及其位置
			        if (isMaxInCol) {
			            System.out.printf("元素%d在第%d行第%d列是最大的\n", maxInRow, x + 1, maxColIndex + 1);
			        }
			    }

以上就是本章内容

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值