在 Java 数组的第一列中找到最大的数字

Find the Largest number in the first column of Java Array

我有一个数组

int [ ][ ] matrix = {{ 10, 23, 93, 44 },{ 22, 34, 25, 3 },{ 84, 11, 7, 52 }};

我想在这个数组的第一列找到最大值,即 84

这是我的整个代码,它给出了这个数组中每一列的最大值

     public class Sample {  
  public static void main(String[] args) {

int[][] matrix = {{10, 23, 93, 44}, {22, 34, 25, 3}, {84, 11, 7, 52}};

int[] max = matrix[0];

for (int row = 1; row < matrix.length; row++) {
    
    for (int column = 0; column < matrix[0].length; column++) {
        
        if (matrix[row][column] > max[column]) {
            
            max[column] = matrix[row][column];
        }
    }
}
for (int number : max) {
    System.out.print(number + " ");
    }
}}
public static void main(String[] args) {
  int[][] matrix = {{10, 23, 93, 44}, {22, 34, 25, 3}, {84, 11, 7, 52}};

  int max = matrix[0][0];
  for (int row = 1; row < matrix.length; row++) {
    if (max < matrix[row][0]) {
      max = matrix[row][0];
    }
  }
  System.out.println(max);
}

如果只求一列的最大值,则不需要嵌套循环:

static int maxOfFirstColumn(int[][] arr) {
    int max = Integer.MIN_VALUE;
    for (int[] row : arr) {
        if (null != row && row.length > 0) {
            max = Math.max(max, row[0]);
        }
    }
    return max;
}

使用流的解决方案API:

static int maxOfFirstColumn(int[][] arr) {
    return Arrays.stream(arr) // Stream<int[]>
        .filter(Objects::nonNull)
        .filter(row -> row.length > 0)
        .mapToInt(row -> row[0]) // IntStream
        .max()
        .getAsInt();
}