Вот улучшенный рабочий образец (хотя без входов сканера для простого тестирования):
public static void main(String[] args){
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(7);
numbers.add(3);
int minIndex = findMin(numbers);
for(int i = 0; i < numbers.size(); i++){
if(minIndex == i){ // If the 'smallest' index value is equal to i.
System.out.println(numbers.get(i) + " <== Smallest number");
}else{
System.out.println(numbers.get(i));
}
}
}
public static int findMin(ArrayList<Integer> n){
int minValue = Integer.MAX_VALUE; // Get value at index position 0 as the current smallest.
int minIndex = -1;
for(int i = 0; i < n.size(); i++){
if(n.get(i) < minValue){
minIndex = i;
}
}
return minIndex;
}
Была некоторая путаница относительно того, возвращает ли метод findMin минимальное значение или минимальный индекс. Теперь он возвращает минимальный индекс. findMin также теперь вызывается только один раз, не для каждой итерации в цикле, что немного чище (и немного быстрее).