Найти минимальный и максимальный элементы в массиве в Java
В этом посте будет обсуждаться, как найти минимальный и максимальный элемент в массиве в Java.
1. Использование списка
Если данный массив не является примитивным массивом, мы можем использовать Arrays.asList() который возвращает список, поддерживаемый массивом. Затем мы вызываем min() а также max() методы Collections class для получения минимального и максимального элементов соответственно. Обратите внимание, что при этом не выполняется фактическое копирование элементов массива.
Как найти минимальное значение в массиве в Java? [закрыт]
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 5 лет назад .
Есть массив чисел[1,4,-2,3]. Как найти минимальное значение в массиве??
Отслеживать
1,541 1 1 золотой знак 9 9 серебряных знаков 22 22 бронзовых знака
задан 29 сен 2018 в 17:47
Santa Murphy Santa Murphy
11 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
По-всякому, например так:
var nums = new int[] ; var min = Arrays.stream(nums).min(); System.out.println(min.isPresent() ? min.getAsInt() : "empty array");
var nums = new int[] ; var min = Collections.min(Arrays.stream(nums).boxed().collect(Collectors.toList())); System.out.println(min);
var nums = new int[]; var min = nums[0]; for (int num : nums) < if (num < min) < min = num; >> System.out.println(min);
Отслеживать
ответ дан 29 сен 2018 в 18:25
Ростислав Красный Ростислав Красный
2,183 6 6 серебряных знаков 18 18 бронзовых знаков
var здесь из какого языка?
29 сен 2018 в 19:10
@Эникейщик Из Java 10
29 сен 2018 в 19:12
Я бы сделал это более понятным способом:
int min = a[0] + 1; for(int i = 0; i < mass.length; i++) < if (a[i]< min) < min = a[i]; >System.out.println(min); >
Проходим по массиву, каждый элемент сравниваем с наименьшим.
Отслеживать
ответ дан 30 сен 2018 в 8:24
michael_best michael_best
1,541 1 1 золотой знак 9 9 серебряных знаков 22 22 бронзовых знака
Зачем к a[0] прибавлять единицу? В этом нет никакого смысла. Чем этот код понятнее третьего варианта в моём ответе? Так же обратите внимание, что лишь первый вариант, из моего ответа, корректно работает с пустым массивом. При этом он самый простой.
30 сен 2018 в 12:24
Для меня — а я студент — первый вариант вообще не был понятен. И что выведет при пустом массиве?
30 сен 2018 в 16:51
Да и цикл for ech (лично для меня) не так понятен.
30 сен 2018 в 16:51
При пустом массиве первый вариант моего решения выведет «empty array». Второй вариант моего решения упадёт с NoSuchElementException . Третий варианты моего решения, а так же ваше решение упадут с ArrayIndexOutOfBoundsException . В первом варианте моего решения из массива чисел создаётся IntStream , в котором есть метод min() , умеющий находить минимальное значение. Поскольку минимальное значение существует не всегда метод min() возвращает объект обёртку OptionalInt . В дальнейшем у этого объекта можно спросить isPresent() а есть ли там настоящий результат.
P0huber / MinAndIndex.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| public class MinAndIndex |
| public static void main ( String [] args ) throws Exception |
| int [] data = new int []< 1 , 2 , 3 , 5 , - 2 , - 8 , 0 , 77 , 5 , 5 >; |
| Pair < Integer , Integer >result = getMinimumAndIndex ( data ); |
| System . out . println ( «Minimum is » + result . x ); |
| System . out . println ( «Index of minimum element is » + result . y );> |
| public static Pair < Integer , Integer >getMinimumAndIndex ( int [] array ) |
| if ( array == null || array . length == 0 ) |
| return new Pair < Integer , Integer >( null , null );> |
| //напишите тут ваш код — определение мин числа массива и его индекса |
| int min = array [ 0 ], x = 0 ; |
| for ( int i = 1 ; i < array . length ; i ++) |
| if ( array [ i ] < min ) |
| min = array [ i ]; // сохраняем минимльное число массива |
| x = i ;>> // переменнй х присваиваем индекс мин числа |
| return new Pair < Integer , Integer >( min , x );> |
| public static class Pair < X , Y > |
| public X x ; |
| public Y y ; |
| public Pair ( X x , Y y ) |
| this . x = x ; |
| this . y = y ; |
| > |
| > |
| > |
| /*Изоморфы наступают |
| Написать метод, который возвращает минимальное число в массиве и его позицию (индекс). |
| Требования: |
| 1. Класс Solution должен содержать класс Pair. |
| 2. Класс Solution должен содержать два метода. |
| 3. Класс Solution должен содержать метод getMinimumAndIndex(). |
| 4. Метод getMinimumAndIndex() должен возвращать минимальное число в массиве и его позицию (индекс).*/ |
Chelak / Solution6.java
Максимальное и минимальное числа в массиве Создать массив на 20 чисел. Заполнить его числами с клавиатуры. Найти максимальное и минимальное числа в массиве. Вывести на экран максимальное и минимальное числа через пробел.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| import java . io . BufferedReader ; |
| import java . io . IOException ; |
| import java . io . InputStreamReader ; |
| import java . util . ArrayList ; |
| import java . util . List ; |
| /* Максимальное и минимальное числа в массиве |
| Создать массив на 20 чисел. Заполнить его числами с клавиатуры. Найти максимальное и минимальное числа в массиве. |
| Вывести на экран максимальное и минимальное числа через пробел. |
| */ |
| public class Solution |
| public static void main ( String [] args ) throws IOException |
| BufferedReader reader = new BufferedReader ( new InputStreamReader ( System . in )); |
| int maximum ; |
| int minimum ; |
| ArrayList < Integer >list = new ArrayList < Integer >(); |
| for ( int i = 0 ; i < 5 ; i ++) |
| list . add ( Integer . parseInt ( reader . readLine ())); |
| > |
| maximum = getMaximum ( list ); |
| minimum = getMinimum ( list ); |
| System . out . println ( maximum ); |
| System . out . println ( minimum ); |
| > |
| static int getMaximum ( ArrayList < Integer >list ) |
| int max = 0 ; |
| for ( int i = 0 ; i < list . size (); i ++) |
| if ( max < list . get ( i )) |
| max = list . get ( i ); |
| return max ; |
| > |
| static int getMinimum ( ArrayList < Integer >list ) |
| int min = list . get ( 0 ); |
| for ( int i = 0 ; i < list . size (); i ++) |
| if ( min > list . get ( i )) |
| min = list . get ( i ); |
| return min ; |
| > |
| > |