int maxValue = Collections.max(list); //Get the max value of your ArrayList
int maxIndex = list.indexOf(maxValue); //Get the first index of maxValue
int minValue = Collections.min(list); //Get the min value of your ArrayList
int minIndex = list.indexOf(minValue); //Get the first index of minValue
Collections.swap(list, maxIndex, minIndex); //swapping
Я думаю, что это на самом деле то, что вы хотите.Здесь list.indexOf (maxValue) возвращает первый индекс maxValue из вашего ArrayList, хотя в вашем ArrayList присутствует несколько maxValue.И аналогично list.indexOf (minValue) возвращает то же самое для minValue.