Перейти к содержимому

Как найти минимальное число в массиве java

  • автор:

Как найти минимальное число в массиве java

В Java 8 и выше можно использовать потоки streams для нахождения минимального числа в массиве. Для этого можно использовать метод min() класса java.util.stream.IntStream , который возвращает минимальное значение в потоке.

int[] numbers = 10, 20, 30, 40, 50>; int min = Arrays.stream(numbers).min().getAsInt(); System.out.println("Минимальное число: " + min); 

Здесь мы создаем поток из массива numbers с помощью метода Arrays.stream() , а затем вызываем метод min() для нахождения минимального значения. Метод min() вернет объект OptionalInt , поэтому мы вызываем метод getAsInt() для получения примитивного значения int

05 апреля 2023

Для нахождения минимального числа в массиве можно использовать цикл, проходящий по всем элементам массива и сохраняя минимальное значение в отдельную переменную. Вот пример кода:

public static int findMin(int[] arr)  int min = arr[0]; for (int i = 1; i  arr.length; i++)  if (arr[i]  min)  min = arr[i]; > > return min; > 

В данном примере функция findMin принимает в качестве аргумента массив целых чисел arr и возвращает минимальное число в массиве.

  • Переменная min инициализируется значением первого элемента массива arr[0] .
  • Затем происходит цикл по всем элементам массива, начиная со второго элемента arr[1] .
  • Если текущий элемент меньше переменной min , ей присваивается значение текущего элемента.
  • По завершении цикла возвращается значение переменной min .

Как найти минимальное значение в массиве в 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() а есть ли там настоящий результат.

Как найти минимальное и максимальное значение массива Java?

При решении задания столкнулся с задачей, немогу разобраться как правильно:

— найти минимальное и максимальное
— среднее арифметическое элементов массива:

import java.util.Random;
import java.util.Scanner;

public class Main

public static void main(String[] args)

// Объявляем Scanner
Scanner input = new Scanner(System.in);
System.out.println(«Enter array length from 1 to 100: «);

if (input.hasNextInt()) int arrLength = input.nextInt();

if (arrLength > 100) System.out.println(«Enter array length from 1 to 100: «);
> else // заполнить числами случайным образом (в диапазоне [-50.00; 50.00])
double[] arr = new double[100];

Random random = new Random();

double a = -50.00;
double b = 50.00;

for (int i = 0; i < arr.length; i++) arr[i] = a + random.nextDouble() * (b - a);
System.out.printf(«%.2f «, arr[i]);
>

// найти минимальный элемент массива

// найти максимальный элемент массива
>
>
>
>

Лучший ответ

double max = arr[0];
double min = arr[0];
for (int i = 1; i < arr.length; i++) max = Math.max(arr[i], max);
min = Math.min(arr[i], min);
>
System.out.println(max);
System.out.println(min);

devcalcУченик (158) 1 год назад

Спасибо!
Также решил задачу таким способом:

// using Collections.max() to find maximum element
// using only 1 line.
Double min = Collections.min(Arrays.asList(arr[i]));
Double max = Collections.max(Arrays.asList(arr[i]));

// printing minimum and maximum numbers
System.out.println(«Minimum number is : » + min);
System.out.println(«Maximum number is : » + max);

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 ;
>
>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *