我正在定义一个函数来接受矩阵(二维数组),例如 x[][]
;并且该函数应在每一行中打印最大的偶数
public static void biggestEvenNumOfEachLine(int x[][]){
int even,t=0,max;
int arr[] = new int [x.length];
for(int i = 0; i < x.length;i++){
for(int j = 0; j < x[i].length;j++,t++){
if(x[i][j] % 2 == 0){
even = x[i][j];
arr[j] = even;
}
}
}
}
我错过了什么?
最佳答案
我将从在单个线阵列中找到最大的偶数开始。从可能的最小值开始,然后迭代数组。测试偶数,然后设置 max
(然后返回)。类似的东西,
private static int biggestEvenNum(int[] x) {
int max = Integer.MIN_VALUE;
for (int i = 0; i < x.length; i++) {
if (x[i] % 2 == 0) {
max = Math.max(max, x[i]);
}
}
return max;
}
但是,在 Java 8+ 中,我更喜欢 filter
偶数并获得 max
喜欢
private static int biggestEvenNum(int[] x) {
return IntStream.of(x).filter(v -> v % 2 == 0).max().getAsInt();
}
那么您的方法就像迭代矩阵中的 line
(s),打印结果一样简单。喜欢,
public static void biggestEvenNumOfEachLine(int[][] x) {
for (int[] line : x) {
System.out.println(biggestEvenNum(line));
}
}
关于java - 函数采用矩阵(二维数组)并打印每行中偶数的最大数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38688240/