Java Поменять местами элементы массива
Помогите поменять местами max и min значение массива. Сами значения нашёл, местами поменял, а как это в массиве непосредственно сделать..? Подозреваю, что нужны индексы для этого, но как? мой код:
int[] arr = new int[] {101, 10, 11, 100, 32, 34, -61, 14, 90, 29, -5};
int max = arr[0];
int min = arr[0];
int maxInd = 0;
int minInd = 0;
for (int i = 0; i < arr.length; i++) {
max = Math.max(max, arr[i]);
min = Math.min(min, arr[i]);
}
int temp = min;
min = max;
max = temp;
System.out.println(min);
System.out.println(max);
}
Ответы (2 шт):
Автор решения: Вадим
→ Ссылка
Да, для перестановки элементов массива, помимо того что запоминать значение максимального элемента, необходимо также запоминать его индекс (позицию в массиве), причем переменные индексов у вас уже заведены, поэтому остается только реализовать код, например так:
int[] arr = new int[]{101, 10, 11, 100, 32, 34, -61, 14, 90, 29, -5};
int max = arr[0];
int min = arr[0];
int maxInd = 0;
int minInd = 0;
for (int i = 0; i < arr.length; i++) {
if (max > arr[i]) { // сравниваем
maxInd = i; // запоминаем индекс
max = arr[i]; // запоминаем значение
}
if (min < arr[i]) { // сравниваем
minInd = i; // запоминаем индекс
min = arr[i]; // запоминаем значение
}
}
// переставляем элементы
int temp = arr[minInd];
arr[minInd] = arr[maxInd];
arr[maxInd] = temp;
Arrays.stream(arr).forEach(e-> System.out.println(e)); // вывод массива
Автор решения: Инна Якунченкова
→ Ссылка
Если требуется вывести min и max элемент массива, то лучше отсортировать массив через Arrays.sort() и вывести первый и последний элементы в массиве.