Перенос элементов из одного списка в другой с использованием цикла for в Java

\w эквивалентен этому символьному классу:

[a-zA-Z0-9_]

Если вы хотите использовать только символы юникода в верхнем регистре, используйте этот класс символов:

'/[\p{Lu}\p{N}_]/u'

Это будет соответствовать любой из:

  1. Юникодовая буква верхнего регистра
  2. номер юникода
  3. Подчеркивание
2
задан nemadT 19 February 2019 в 18:11
поделиться

2 ответа

Arrays.asList возвращает вам неизменный список, следовательно, UnsupportedOperationException при добавлении. Вот javadoc, и вот что он говорит:

Возвращает список фиксированного размера , поддерживаемый указанным массивом. (Изменения в возвращаемом списке «сквозная запись» в массив.) Этот метод действует как мост между API на основе массива и на основе коллекции в сочетании с Collection.toArray (). Возвращенный список является сериализуемым и реализует RandomAccess.

Для вашего случая вы действительно можете сделать это без какого-либо цикла со следующей строкой (т.е. с помощью конструктора):

List<String> temp = new ArrayList(origin);

Обновление

[ 1110] Если вы хотите отформатировать, вы можете повторить и применить формат, например:

List<String> temp = new ArrayList<>();
for(String element : origin) {
    String formattedElement = format(element);
    temp.add(formattedElement);
}

Вот способ Java 8:

List<String> temp = origin.stream()
    .map(e -> format(e))
    .collect(Collectors.toList());
0
ответ дан Darshan Mehta 19 February 2019 в 18:11
поделиться

Arrays.asList() возвращает неизменный список. Вместо этого вы должны использовать некоторую реализацию изменяемого списка, такую ​​как ArrayList:

List<String> temp = new ArrayList();
0
ответ дан Mureinik 19 February 2019 в 18:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: