Как объявить ArrayList со значениями?
Объявление ArrayList или List в Java подвергло сомнению и ответил, как объявить пустой ArrayList
но как мне объявить ArrayList со значениями?
Я пробовал следующее, но он возвращает синтаксическую ошибку:
import java.io.IOException;
import java.util.ArrayList;
public class test {
public static void main(String[] args) throws IOException {
ArrayList<String> x = new ArrayList<String>();
x = ['xyz', 'abc'];
}
}
6 ответов
Вы можете создать новый объект, используя конструктор, который принимает Collection
:
List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));
Совет: документы содержат очень полезную информацию, которая обычно содержит ответ, который вы ищете. Например, вот конструкторы ArrayList
учебный класс:
ArrayList()
Создает пустой список с начальной емкостью десять.
ArrayList(Collection<? extends E> c)
(*)Создает список, содержащий элементы указанной коллекции, в том порядке, в котором они возвращаются итератором коллекции.
ArrayList(int initialCapacity)
Создает пустой список с указанной начальной емкостью.
Java 8 решение с использованием Stream
:
Stream.of("xyz", "abc").collect(Collectors.toList());
Использование:
List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));
Если вы не хотите добавлять новые элементы в список позже, вы также можете использовать ( Arrays.asList возвращает список фиксированного размера):
List<String> x = Arrays.asList("xyz", "abc");
Примечание: вы также можете использовать статический импорт, если хотите, то это выглядит так:
import static java.util.Arrays.asList;
...
List<String> x = new ArrayList<>(asList("xyz", "abc"));
или же
List<String> x = asList("xyz", "abc");
Вы можете сделать так:
List<String> temp = new ArrayList<String>(Arrays.asList("1", "12"));
Библиотека Guava содержит удобные методы для создания списков и других коллекций, что делает это намного красивее, чем использование стандартных библиотечных классов.
Пример:
ArrayList<String> list = newArrayList("a", "b", "c");
(Это предполагает import static com.google.common.collect.Lists.newArrayList;
)
Попробуй это!
List<String> x = new ArrayList<String>(Arrays.asList("xyz", "abc"));
Это хорошая практика, чтобы объявить ArrayList
с интерфейсом List
если вам не нужно вызывать конкретные методы.
Используйте это:
ArrayList<String> x = new ArrayList(Arrays.asList("abc", "mno"));