Как объявить 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"));
Другие вопросы по тегам