Инициализация списка в одну строку

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Использование метода Arrays.asList()

Мы можем создать список, используя массив, с помощью метода asList(). Этот метод непосредственно принимает элементы в качестве параметров и возвращает список фиксированного размера. Если попытаться добавить элемент, будет выброшено исключение UnsupportedOperationException.

import java.util.Arrays;
import java.util.List;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Arrays.asList("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

Для запуска кода откройте командную строку, перейдите в каталог проекта и выполните следующие команды:

javac ListInitializationDemo.java
java ListInitializationDemo

Использование Java 8 Streams

Java Streams можно использовать для создания списка из элементов потока с использованием метода collect().

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Stream.of("red", "blue", "green")
              .collect(Collectors.toList());
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

Для запуска кода откройте командную строку, перейдите в каталог проекта и выполните следующие команды:

javac ListInitializationDemo.java
java ListInitializationDemo

Использование метода List.of()

Java 9 предоставляет перегруженный метод List.of() для изменяемых и неизменяемых списков.

import java.util.List;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = List.of("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

Для запуска кода откройте командную строку, перейдите в каталог проекта и выполните следующие команды:

javac ListInitializationDemo.java
java ListInitializationDemo

Использование двойной фигурной скобки (Double Brace Syntax)

Инициализация с использованием двойной фигурной скобки может быть использована для анонимного внутреннего класса для инициализации списка.

import java.util.List;
import java.util.ArrayList;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = new ArrayList<String>() {
            {
                add("red");
                add("blue");
                add("green");
            }
        };
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

Для запуска кода откройте командную строку, перейдите в каталог проекта и выполните следующие команды:

javac ListInitializationDemo.java
java ListInitializationDemo

Использование Apache Commons Collections

Apache Commons Collections предоставляет метод unmodifiableList(), который возвращает неизменяемое представление указанного списка.

import java.util.List;
import org.apache.commons.collections4.ListUtils;
import java.util.Arrays;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = ListUtils.unmodifiableList(
                Arrays.asList("red", "blue", "green")
        );
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

Для запуска кода откройте терминал, перейдите в каталог проекта и выполните следующие команды:

javac -cp commons-collections4-4.4.jar ListInitializationDemo.java
java -cp commons-collections4-4.4.jar:. ListInitializationDemo

Использование библиотеки Guava

Библиотека Guava предоставляет метод newArrayList(), который возвращает изменяемый ArrayList, инициализированный элементами.

import java.util.List;
import com.google.common.collect.Lists;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Lists.newArrayList("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

Для запуска кода откройте терминал, перейдите в каталог проекта и выполните следующие команды:

javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo

Использование ImmutableList из Guava

Guava также предоставляет класс ImmutableList, который возвращает неизменяемый список.

import java.util.List;
import com.google.common.collect.ImmutableList;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = ImmutableList.of("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

Для запуска кода откройте терминал, перейдите в каталог проекта и выполните следующие команды:

javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo

Резюме

В Java существует множество способов инициализировать список в одну строку кода. Мы рассмотрели способы использования Java 8 Stream для создания списка, использование метода Arrays.asList() и метода List.of() для версий Java после 9. Мы также увидели инициализацию с использованием двойной фигурной скобки и пример того, как можно использовать внешние Java библиотеки, такие как Apache Commons Collections и Guava.