Как объявить ArrayList со значениями? [дубликат]


этот вопрос уже есть ответ здесь:

  • Инициализация ArrayList в одной строке 30 ответов

объявление 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 165

6 ответов:

вы можете создать новый объект с помощью конструктора, который принимает Collection:

List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));

Совет: The docs содержит очень полезную информацию, которая обычно содержится ответ, который вы ищете. Например, вот конструкторы 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"));

если вы не хотите добавлять новые элементы в Список позже, вы также можете использовать (массивы.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"));

The гуава библиотека содержит удобные методы для создания списков и других коллекций, что делает это намного красивее, чем использование стандартных классов библиотеки.

пример:

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"));