Минимум и максимум массива в Java

Как мы говорим и повторяем, Java предоставляет предопределенные методы благодаря своей объектно-ориентированной концепции, которая упрощает для нас программирование, но, программируя эти методы самостоятельно, она помогает нам немного попрактиковаться и сохранить свою форму. Возвращаясь к нашей основной теме, чтобы найти максимальное и минимальное значение в массиве из n элементов, нужно знать, что необходимо пройти весь массив от первого до последнего элемента, сравнивая при этом найденный наибольший/наименьший элемент с текущим элементом.

В примерах в этой статье Мы представим четыре решения для нахождения минимального и максимального значения в массиве:

- Naïve solution
- Java 8
- Google Guava Api library
- The Apache Commons library

Вот Java-программа, которая возвращает значение и позицию наименьшего значения в массиве.

public class min_max_array {
public static void main(String[] args) {
int maxVal = Integer.MAX_VALUE;
int minVal = Integer.MIN_VALUE;

int array[] = {51, 24, 19, 5, 37, 76, 61, 99, 101, 36};

for (int number:array)
System.out.print(number+" ");

for(int i = 0; i < array.length; i++){
if(array[i] < maxVal)
maxVal = array[i];
if(array[i] > minVal)
minVal = array[i];
}

System.out.print("\nМинимальное значение = "+maxVal);
System.out.print("\nМаксимальное значение = "+minVal);
}
}
Runtime:

51 24 19 5 37 76 61 99 101 36 
Минимальное значение = 5
Максимальное значение = 101
В примере сначала инициализируется переменнаяminVal с Integer.MAX_VALUE которое является большим значением, чем int может принять. Это делается для того, чтобы убедиться, что начальное значение случайно не меньше первого значения в массиве.
Во-вторых, программа перебирает массив и сравнивает каждое значение с  minVal. Если товар в   Таблица меньше, чем  minVal  Итак  minVal  получает значение этого элемента.
Наконец, выводится минимальное значение, найденное в массиве.

Java 8

В Java 8 легко найти наибольшее и наименьшее число. В первом коде мы преобразуем массив в поток, затем вызываем метод Arrays.stream().max() который возвращает OptionalInt и содержит наибольшее найденное значение.
Во втором коде используется IntStream, поток, специализированный для int-примитивов, и отсюда можно вызвать intStream.of().max() который возвращает OptionalInt.

public void max_array_java8 (int[] tab) {
OptionalInt max = Arrays.stream(tab).max();
//или
OptionalInt max = IntStream.of(tab).max();
}
public void min_array_java8 (int[] tab) {
OptionalInt min = Arrays.stream(tab).min();
//или
OptionalInt min = IntStream.of(tab).min();
}

Google Guava API

Guava Ints класс предоставляет два методаInts.max() и Ints.min() которые возвращают наибольшее и наименьшее значение соответственно. Чтобы иметь возможность использовать этот API, скачайте его с официального сайта Google Guava.
à
public static int max_array_guava (int[] tab) {
int max = Ints.max(tab);
возврат макс.;
}
public static int min_array_guava (int[] tab) {
int min = Ints.min(tab);
возврат мин;
}

Apache Commons

Класс NumberUtils Apache commons предоставляет дополнительную функциональность java и содержит два методаNumberUtils.max() и NumberUtils.min() которые возвращают наибольшее и наименьшее значение соответственно. Чтобы иметь возможность использовать эту библиотеку, скачайте ее с официального сайта api Apache Commons.

public static int max_array_apache (int[] tab) {
int max = NumberUtils.max(tab);
возврат макс.;
}
public static int min_array_apache (int[] tab) {
int min = NumberUtils.min(tab);
возврат мин;
}
References:
Find Min & max в массиве с использованием минимальных сравнений