Я бы проголосовал за второй вариант здесь с небольшим изменением.
Вы используете тот факт, что метод .add
возвращает логическое значение, которое является полезным, поскольку вам не нужно иметь избыточную переменную-флаг, которая из контекста вашего кода не служит никаким другим цель, чем просто прекратить l oop.
Лично я бы предпочел извлечь:
!chosenInts.add(nextChosenInt)
в его собственный метод, который будет более наглядным и читабельным. Делая это, вы позволяете любому понять это условие без предварительного знания API коллекций.