Я хочу найти максимальное и минимальное значения в целочисленном массиве, но я не могу их использовать.
Eclipse выдает эту ошибку
The method min(int, int) in the type Math is not applicable for the arguments (int[])
Я не могу использовать эти встроенные функции в массиве.
public static void main (String args[])
{
c_21 obj=new c_21();
int[] a =new int[3];
a[0]=1;
a[1]=5;
a[2]=6;
int max = Math.max(...a);
int min = Math.min(...a);
}
Теперь вы можете подумать о принимая ответ или прокомментировать один, чтобы получить подробности;) чтобы вознаградить тех, кто потратил время на вас;)




Эти функции ожидают только два аргумента. Если вам нужен минимум массива, вы можете использовать IntStream.
int[] a = { 1, 5, 6 };
int max = IntStream.of(a).max().orElse(Integer.MIN_VALUE);
int min = IntStream.of(a).min().orElse(Integer.MAX_VALUE);
Если возможно, используйте NumberUtils в Apache Commons Lang - там много замечательных утилит.
NumberUtils.max(int[]);
В твоем случае:
int max = NumberUtils.max(a);
Или вы можете использовать:
int max = Collections.max(Arrays.asList(1,5,6));
Math.max()/min()
Если вы действительно хотите использовать эти 2 функции, вы можете сделать следующее:
int max = Arrays.stream(a).reduce(Math::max).orElse(Integer.MAX_VALUE);
int min = Arrays.stream(a).reduce(Math::min).orElse(Integer.MIN_VALUE);
Встроенная функция IntStream
int max = IntStream.of(a).max().orElse(Integer.MIN_VALUE);
int min = IntStream.of(a).min().orElse(Integer.MAX_VALUE);
Использование простого for loop
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int element : a) {
max = Math.max(max, element);
min = Math.min(min, element);
}
Вы можете просто использовать встроенную Java-версию Collection и Arrays, чтобы решить эту проблему. Вам просто нужно импортировать их и использовать.
Пожалуйста, проверьте код ниже.
import java.util.Arrays;
import java.util.Collections;
public class getMinNMax {
public static void main(String[] args) {
Integer[] num = { 2, 11, 55, 99 };
int min = Collections.min(Arrays.asList(num));
int max = Collections.max(Arrays.asList(num));
System.out.println("Minimum number of array is : " + min);
System.out.println("Maximum number of array is : " + max);
}
}
Я предполагаю, что ваш учитель ожидает, что вы напишете алгоритм, используя цикл, чтобы сделать это. Не только для того, чтобы найти способ, который сделает это за вас. Найденные вами методы, как ясно сказано в сообщении и как также говорится в документации javadoc, просто сравните два целых числа. Если ваша цель - найти методы в библиотеке Java, вам необходимо прочитать их javadoc.