в didFinishPickingMediaWithInfo
вместо
let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage
использовать
let pickedImage = info[UIImagePickerControllerEditedImage] as? UIImage
Он выводит число каждый раз, когда находит число, превышающее текущий максимум (что в вашем случае происходит три раза). Переместите отпечаток за пределы цикла for, и все будет хорошо.
for (int counter = 1; counter < decMax.length; counter++)
{
if (decMax[counter] > max)
{
max = decMax[counter];
}
}
System.out.println("The highest maximum for the December is: " + max);
Если вы не хотите использовать какие-либо предопределенные библиотеки Java, то ниже приведен самый простой способ
public class Test {
public static void main(String[] args) {
double[] decMax = {-2.8, -8.8, 2.3, 7.9, 4.1, -1.4, 11.3, 10.4,
8.9, 8.1, 5.8, 5.9, 7.8, 4.9, 5.7, -0.9, -0.4, 7.3, 8.3, 6.5, 9.2,
3.5, 3, 1.1, 6.5, 5.1, -1.2, -5.1, 2, 5.2, 2.1};
double maxx = decMax[0];
for (int i = 0; i < decMax.length; i++) {
if (maxx < decMax[i]) {
maxx = decMax[i];
}
}
System.out.println(maxx);
}
}
Самый простой способ, который я нашел, поддерживает все версии Android
Arrays.sort(series1Numbers);
int maxSeries = Integer.parseInt(String.valueOf(series1Numbers[series1Numbers.length-1]));
Вы можете использовать функцию, которая принимает массив и находит в нем максимальное значение. я сделал его универсальным, чтобы он мог также принимать другие типы данных
public static <T extends Comparable<T>> T findMax(T[] array){
T max = array[0];
for(T data: array){
if(data.compareTo(max)>0)
max =data;
}
return max;
}
Более короткое решение для максимального значения массива:
double max = Arrays.stream(decMax).max(Double::compareTo).get();
То же, что предложили другие, просто упомянув более чистый способ сделать это:
int max = decMax[0];
for(int i=1;i<decMax.length;i++)
max = Math.max(decMax[i],max);
System.out.println("The Maximum value is : " + max);
Чтобы найти самое высокое (максимальное) или самое низкое (минимальное) значение из массива, это может дать вам правильное направление. Вот пример кода для получения наибольшего значения из примитивного массива.
public int maxValue(int array[]){
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < array.length; i++) {
list.add(array[i]);
}
return Collections.max(list);
}
Чтобы получить наименьшее значение, вы можете использовать
Collections.min(list)
public int maxValue(int array[]){
int max = Arrays.stream(array).max().getAsInt();
return max;
}
Теперь следующая строка должна работать.
System.out.println("The highest maximum for the December is: " + maxValue(decMax));
Вам нужно распечатать max после , вы просканировали их все:
for (int counter = 1; counter < decMax.length; counter++)
{
if (decMax[counter] > max)
{
max = decMax[counter];
// not here: System.out.println("The highest maximum for the December is: " + max);
}
}
System.out.println("The highest maximum for the December is: " + max);
У вас есть оператор print () в for ()
цикл, он должен быть после, чтобы он печатался только один раз. так, как сейчас, каждый раз, когда max изменяется, выводится max
.