Можно ли заполнить массив с помощью foreach

191
16 ноября 2021, 06:20

Можно ли заполнить массив с клавиатуры с помощью foreach? Суть какая: создаю список и хочу заполнить данными с клавиатуры, пока не введу "стоп-слово".

Answer 1

В принципе можно.

String stop = "STOP";
Scanner scanner = new Scanner(System.in);
String[] array = new String[scanner.nextInt()];
int pos = 0;
for (String s : array) {
    String value = scanner.next();
    if (value.equals(stop))
        break;
    array[pos++] = value;
}

Но это глупо, ведь всё равно приходится хранить индекс элемента, а переменная s вообще не используется.

Приравнять s к value нельзя из-за того, что String - ссылочный тип, при присваивании переменной типа String нового значения, старое значение в памяти остаётся, но переменная начинает ссылаться на новое значение в памяти.

foreach используется только для чтения массива, но не для записи в него.

В вашем случае стоит использовать цикл for.

for (int pos = 0; pos < array.length; pos++) {
    ...
}
READ ALSO
Доработка кода массива

Доработка кода массива

Вечер добрый, простите за тупость, в java меньше 3-х недель и немного не понимаю как добавить переменную в код, чтобы сортировка была именно на столько...

115
jsf обработать кнопку

jsf обработать кнопку

Не погу понять, как сделать,чтобы при нажатии кнопки create pet можно было создать Pet

293
Взаимодействие C# и Java

Взаимодействие C# и Java

Мне нужно реализовать сетевое взаимодействие приложений на Android (Java) и Windows (C#)Я испытываю трудности с написанием серилизатора на разных языках...

233
Как найти дубликаты Bitmap в списке объектов?

Как найти дубликаты Bitmap в списке объектов?

Есть большой массив объектов BitmapНужно пройтись по каждому элементу и создать отдельный список где каждый дубликат будет отсортирован

169