Можно ли заполнить ArrayList с помощью цикла for
each?
опубликовал новую статью, ‘Можно
ли заполнить ArrayList с помощью цикла for each?‘
Нет, заполнить ArrayList
с помощью
цикла for-each
напрямую
нельзя, так как этот цикл
предназначен только для итерации
по элементам коллекции, а не для
добавления новых элементов в нее. В
for-each
цикле вы можете получать
доступ к каждому элементу из существующей
коллекции или массива, но не можете
добавлять в коллекцию новые элементы.
Пример: Невозможность
добавления через for-each
Например, если вы попытаетесь
использовать for-each
для добавления
элементов в ArrayList
, это приведет к
ошибке компиляции:
ArrayList<String> list = new
ArrayList<>();
for (String item : list) {
// Это не сработает: for-each только для
чтения элементов
list.add("New Element"); // Ошибка: нельзя изменить
коллекцию в for-each цикле
}
Как правильно добавить
элементы с циклом for-each
Вместо этого, вы можете использовать
for-each
для копирования
элементов из одной коллекции в другую, что
часто бывает полезно.
Например, если у вас уже есть массив или
другой список, и вы хотите перенести его
элементы в ArrayList
, вы можете сделать
это с помощью for-each
:
String[] fruits = {"Apple", "Banana",
"Orange"};
ArrayList<String> list = new ArrayList<>();
for (String fruit : fruits) {
list.add(fruit); // Добавляем каждый элемент в
ArrayList
}
System.out.println(list); // [Apple, Banana, Orange]
Альтернативный подход:
for
с индексом
Если вам нужно добавить элементы в
ArrayList
в цикле, лучше использовать
обычный for
с индексом или метод
Collections.addAll()
, как было описано
ранее:
// Добавляем числа от 1 до
5 в ArrayList с использованием цикла for
ArrayList<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= 5; i++) {
numbers.add(i);
}
System.out.println(numbers); // [1, 2, 3, 4, 5]
Заключение
Таким образом, цикл for-each
можно
использовать только для итерации по
элементам и не подходит для добавления
новых элементов в ArrayList
.
Вы получили это письмо, так как просили
уведомлять вас о появлении новых записей.
С уважением,
JavaTutor.eu
webmaster@javatutor.eu