Минимум и максимум массива в Java
Как мы говорим и повторяем, Java предоставляет предопределенные методы благодаря своей объектно-ориентированной концепции, которая упрощает для нас программирование, но, программируя эти методы самостоятельно, она помогает нам немного попрактиковаться и сохранить свою форму. Возвращаясь к нашей основной теме, чтобы найти максимальное и минимальное значение в массиве из n элементов, нужно знать, что необходимо пройти весь массив от первого до последнего элемента, сравнивая при этом найденный наибольший/наименьший элемент с текущим элементом.В примерах в этой статье Мы представим четыре решения для нахождения минимального и максимального значения в массиве:
- Naïve solution
- Java 8
- Google Guava Api library
- The Apache Commons library
Вот Java-программа, которая возвращает значение и позицию наименьшего значения в массиве.
public class min_max_array {Runtime:
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);
}
}
51 24 19 5 37 76 61 99 101 36В примере сначала инициализируется переменнаяminVal с Integer.MAX_VALUE которое является большим значением, чем int может принять. Это делается для того, чтобы убедиться, что начальное значение случайно не меньше первого значения в массиве.
Минимальное значение = 5
Максимальное значение = 101
Во-вторых, программа перебирает массив и сравнивает каждое значение с 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) {References:
int max = NumberUtils.max(tab);
возврат макс.;
}
public static int min_array_apache (int[] tab) {
int min = NumberUtils.min(tab);
возврат мин;
}
Find Min & max в массиве с использованием минимальных сравнений