Java: Нахождение самого высокого значения в массиве

в didFinishPickingMediaWithInfo вместо

let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage

использовать

let pickedImage = info[UIImagePickerControllerEditedImage] as? UIImage
23
задан HelloWorld 27 November 2009 в 04:54
поделиться

9 ответов

Он выводит число каждый раз, когда находит число, превышающее текущий максимум (что в вашем случае происходит три раза). Переместите отпечаток за пределы цикла for, и все будет хорошо.

for (int counter = 1; counter < decMax.length; counter++)
{
     if (decMax[counter] > max)
     {
      max = decMax[counter];
     }
}

System.out.println("The highest maximum for the December is: " + max);
37
ответ дан Anthony Pegram 28 November 2019 в 22:19
поделиться

Если вы не хотите использовать какие-либо предопределенные библиотеки Java, то ниже приведен самый простой способ

   public class Test {

    public static void main(String[] args) {
        double[] decMax = {-2.8, -8.8, 2.3, 7.9, 4.1, -1.4, 11.3, 10.4,
            8.9, 8.1, 5.8, 5.9, 7.8, 4.9, 5.7, -0.9, -0.4, 7.3, 8.3, 6.5, 9.2,
            3.5, 3, 1.1, 6.5, 5.1, -1.2, -5.1, 2, 5.2, 2.1};

        double maxx = decMax[0];

        for (int i = 0; i < decMax.length; i++) {
            if (maxx < decMax[i]) {
                maxx = decMax[i];
            }
        }
        System.out.println(maxx);

    }
}
0
ответ дан Poorna Senani Gamage 28 November 2019 в 22:19
поделиться

Самый простой способ, который я нашел, поддерживает все версии Android

Arrays.sort(series1Numbers);

int maxSeries = Integer.parseInt(String.valueOf(series1Numbers[series1Numbers.length-1]));
0
ответ дан Amir De 28 November 2019 в 22:19
поделиться

Вы можете использовать функцию, которая принимает массив и находит в нем максимальное значение. я сделал его универсальным, чтобы он мог также принимать другие типы данных

public static <T extends Comparable<T>> T findMax(T[] array){       
    T max = array[0];
    for(T data: array){
        if(data.compareTo(max)>0)
            max =data;                
    }
    return max;
}
0
ответ дан Shimrod 28 November 2019 в 22:19
поделиться

Более короткое решение для максимального значения массива:

double max = Arrays.stream(decMax).max(Double::compareTo).get();
1
ответ дан freedev 28 November 2019 в 22:19
поделиться

То же, что предложили другие, просто упомянув более чистый способ сделать это:

int max = decMax[0];
for(int i=1;i<decMax.length;i++)
    max = Math.max(decMax[i],max);
System.out.println("The Maximum value is : " + max);
5
ответ дан Sahil Chhabra 28 November 2019 в 22:19
поделиться

Чтобы найти самое высокое (максимальное) или самое низкое (минимальное) значение из массива, это может дать вам правильное направление. Вот пример кода для получения наибольшего значения из примитивного массива.

Метод 1:

public int maxValue(int array[]){
  List<Integer> list = new ArrayList<Integer>();
  for (int i = 0; i < array.length; i++) {
    list.add(array[i]);
  }
 return Collections.max(list);

}

Чтобы получить наименьшее значение, вы можете использовать

Collections.min(list)

Метод 2:

public int maxValue(int array[]){
  int max = Arrays.stream(array).max().getAsInt();
  return max;
}

Теперь следующая строка должна работать.

System.out.println("The highest maximum for the December is: " + maxValue(decMax)); 
24
ответ дан Ellen Spertus 28 November 2019 в 22:19
поделиться

Вам нужно распечатать max после , вы просканировали их все:

for (int counter = 1; counter < decMax.length; counter++)
{
    if (decMax[counter] > max)
    {
        max = decMax[counter];
        // not here: System.out.println("The highest maximum for the December is: " + max);
    }
}  
System.out.println("The highest maximum for the December is: " + max);
8
ответ дан 28 November 2019 в 22:19
поделиться

У вас есть оператор print () в for () цикл, он должен быть после, чтобы он печатался только один раз. так, как сейчас, каждый раз, когда max изменяется, выводится max .

1
ответ дан 28 November 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: