Я и сам изучаю Java и хочу акцентировать ваше внимание на следующих пунктах:
Во-первых,
ArrayList<String> myList
Вы создаете ArrayList с параметрированным типом данных String.
Отсюда возможны слудующие проблемы в дальнейшем:
1) Как убедиться, что пользователь введет именно число, а не слово. Если вы хотите использовать именно тип String, то стоит использовать также regexp и метод matches()
и проверять на то, что пользователь ввел именно цифру или число.
2) Как сравнить числа, если они являются переменными типа String?
Разве, что нужно будет итерировать по списку и использовать Integer.parseInt(str)
Ведь, сравнить строки вы не можете и вам придется привести строки к типу int.
3) if(number == "!")
Строки лучше сравнивать используя метод equals()
. Вам не удается выйти из цикла именно из-за этого. используйте equals()
Наверное, лучше сразу принимать int используя sc.nextInt()
, а из цикла выходить другим способом. Например, нажатием кнопки, которую вы назначите на выход из цикла. Например, добавив event listener для кнопки Enter и по нажатию кнопки выходите из цикла. А далее итерировать по списку и сравнить данные и выдать макс. значение