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

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

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

5 лет назад

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

Ответы

1

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

1
2
3
4
5
6
7
8
9
public static int findMax(int[] arr) {
    int max = arr[0]; // начальное значение максимального элемента
    for (int i = 1; i < arr.length; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
    }
    return max;
}

Этот метод принимает в качестве аргумента массив arr и возвращает максимальный элемент в массиве. Вы можете вызвать этот метод и передать ему ваш массив для нахождения максимального значения.

4 года назад

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

0

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

Пример:

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

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

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

Результат:

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

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

4 года назад

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

0

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

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

int max = numbers[0];
for (int n : numbers) {
    if (n > max) {
        max = n;
    }
}
System.out.println(max); // 17

Начинайте с numbers[0]. Если взять за старт ноль, для массива из одних отрицательных чисел получится неверный ответ 0.

Через Stream API

1
2
3
import java.util.Arrays;

int max = Arrays.stream(numbers).max().getAsInt(); // 17

max() возвращает OptionalInt: у пустого массива максимума нет. Безопасный вариант — max().orElse(0) или проверка isPresent().

Для списка List

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

List<Integer> list = List.of(3, 17, -4, 12);
int max = Collections.max(list); // 17

Максимум и его индекс

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

Минимум и максимум за один проход

1
2
3
4
import java.util.IntSummaryStatistics;

IntSummaryStatistics stats = Arrays.stream(numbers).summaryStatistics();
System.out.println(stats.getMin() + " " + stats.getMax()); // -4 17

summaryStatistics() заодно считает сумму, среднее и количество элементов.

Сортировать не нужно

Arrays.sort(numbers) и взятие последнего элемента тоже дают максимум, но сортировка медленнее одного прохода и меняет исходный массив.

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

17 дней назад

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

+7 800 100 22 47

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

+7 495 085 21 62

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

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