/
Вопросы и ответы
/
Java
/

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

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

5 лет назад

Человек-Молекула

Ответы

0

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

Пример:

1
2
3
4
5
int[] numbers = {10, 20, 30, 40, 50};

int min = Arrays.stream(numbers).min().getAsInt();

System.out.println("Минимальное число: " + min);

Результат:

1
Минимальное число: 10

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

4 года назад

Иван Полежаев

0

Для нахождения минимального числа в массиве в Java есть несколько способов. Приведу самые простые.

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

1
2
3
4
5
6
7
8
9
10
11
12
13
public static int findMin(int[] array) {
    if (array == null || array.length == 0) {
        throw new IllegalArgumentException("Массив пуст или null");
    }
    
    int min = array[0];
    for (int i = 1; i < array.length; i++) {
        if (array[i] < min) {
            min = array[i];
        }
    }
    return min;
}

В Jave 8+ мы можем использовать стримы:

1
2
3
4
5
import java.util.Arrays;

public static int findMin(int[] array) {
    return Arrays.stream(array).min().orElseThrow(() -> new IllegalArgumentException("Массив пуст"));
}

Для массива объектов можно также использовать библиотеку Collections:

1
2
3
4
5
6
import java.util.Arrays;
import java.util.Collections;

public static Integer findMin(Integer[] array) {
    return Collections.min(Arrays.asList(array));
}

Обратите внимание, что вне зависимости от решения нужно обрабатывать случаи с пустым массивом или null, чтобы избежать ошибок во время выполнения.

2 года назад

Ivan Mamtsev

0

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

1
2
3
4
5
6
7
8
9
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.

4 года назад

Иван Полежаев

0

Минимум в массиве ищут циклом: берут первый элемент за минимум и сравнивают с ним остальные:

1
2
3
4
5
6
7
8
9
int[] numbers = {8, -3, 15, 0};

int min = numbers[0];
for (int n : numbers) {
    if (n < min) {
        min = n;
    }
}
System.out.println(min); // -3

Стартовое значение — первый элемент массива. Если начать с нуля, для массива из одних положительных чисел получится неверный ответ 0.

Через Stream API

1
2
3
import java.util.Arrays;

int min = Arrays.stream(numbers).min().getAsInt(); // -3

У пустого массива минимума нет, поэтому min() возвращает OptionalInt. Безопасно: Arrays.stream(numbers).min().orElse(0).

Для списка

1
2
3
4
5
import java.util.Collections;
import java.util.List;

List<Integer> list = List.of(8, -3, 15, 0);
int min = Collections.min(list); // -3

Индекс минимального элемента

1
2
3
4
5
6
7
int minIndex = 0;
for (int i = 1; i < numbers.length; i++) {
    if (numbers[i] < numbers[minIndex]) {
        minIndex = i;
    }
}
System.out.println(minIndex); // 1

Минимум среди объектов

Например, самый дешёвый товар — через компаратор:

1
2
3
4
5
6
7
8
9
record Product(String name, int price) {}

List<Product> products = List.of(
    new Product("Чай", 150),
    new Product("Кофе", 300)
);

Product cheapest = Collections.min(products, Comparator.comparingInt(Product::price));
System.out.println(cheapest.name()); // Чай

Минимум и максимум сразу

1
2
IntSummaryStatistics stats = Arrays.stream(numbers).summaryStatistics();
System.out.println(stats.getMin() + " " + stats.getMax()); // -3 15

Массивы и циклы в Java разбирают в бесплатном курсе «Основы Java».

3 дня назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845