Введение
В Java мы можем инициализировать список в одной строке кода с использованием различных подходов. В этом практическом занятии мы узнаем разные способы инициализации списков в Java кратко.
💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал
В Java мы можем инициализировать список в одной строке кода с использованием различных подходов. В этом практическом занятии мы узнаем разные способы инициализации списков в Java кратко.
Мы можем создать список, используя массив, с помощью метода 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 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
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
Инициализация с использованием двойной фигурной скобки может быть использована для анонимного внутреннего класса для инициализации списка.
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 предоставляет метод 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 предоставляет метод 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
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.