Как получить максимальное значение в нескольких массивах? - PullRequest
0 голосов
/ 21 июня 2019

Я хочу взять максимальное значение, полученное из result.length, но у меня возникают проблемы с его вызовом, можете ли вы мне помочь?

double[][] result =  matrixMultiplexing(neighboursAdjSquare(matrixEgoNetwork), matrixDecrement(ones, matrixEgoNetwork));
double max = result[0][0];
    ArrayList<Double> val= new ArrayList<>();
    for (int i = 0; i < result.length; i++) {
        for (int j = i+1; j < result.length; j++) {
            Arrays.sort(result);
            if(result[i][j]== "I wanna called here" ){

                    val.add(result[i][j]);

            }
        }
    }

Ошибка не может быть применена 'double', double [] ' Вы можете помочь мне это исправить?

1 Ответ

0 голосов
/ 10 июля 2019
public class FindMaxOf2dArray {
public static void main(String[] argv) {
    double[][] arr2d =  new double[][]{
        {1.0, 2.0, 3.0, 4.0},
        {5.0, 6.0, 7.0, 8.0},
        {99.0, 0.0, 0.0, -1.0}
    };
    double maxOfarr2d = findMaxOf2dArray(arr2d);

    System.out.println("The maximum value contained in arr2d is " + maxOfarr2d);
}

static double findMaxOf2dArray(double[][] arr2d){
    double maxValue = Double.MIN_VALUE; 

    for(int i = 0; i < arr2d.length; i++){ //iterate through the number of arrays 
        for(int j = 0; j < arr2d[i].length; j++){//iterate through each value in the given array
            if(arr2d[i][j] > maxValue){
                maxValue = arr2d[i][j];
            }
        }
    }

    return maxValue;
}

}

Это был бы самый простой способ найти максимальное значение в 2d-массиве. Не обязательно лучший способ, но должно быть легко следовать логике. В методе findMaxOf2dArray (double [] []) мы устанавливаем максимальное значение наименьшее возможное значение, которое может быть сохранено в double. Затем мы вводим цикл for, который проходит через каждый массив, который содержит double. Для каждой итерации этого цикла мы вводим второй цикл for, который перебирает все значения, хранящиеся в текущем массиве. Каждое значение затем сравнивается со значением, сохраненным в maxValue. Если значение, хранящееся в массиве, больше, чем значение, хранящееся в maxValue, тогда мы меняем значение maxValue на значение, сохраненное в массиве. Наконец, после проверки каждого значения в каждом массиве 2d-массива, мы возвращаем значение, сохраненное в maxValue.

Я считаю, что проблема вашего кода в том, что вы никогда не просматриваете значения, хранящиеся в каждом массиве. Вы только перебираете сами массивы - дважды. Каждое значение, сохраненное в result [i], само по себе является массивом, который содержит двойные значения, которые вы хотите сравнить. Кроме того, начиная j с i + 1, вы пропускаете значения i + 1, через которые нужно пройти. Наконец, двойник не может сравниваться со строкой.

...