Метод toList
Метод toList собирает элементы потока в
неизменяемый список List. Метод не принимает
параметров и является терминальной операцией - после
его вызова поток считается использованным и не может
быть применён повторно. Полученный список нельзя
изменять: попытка добавить или удалить элемент
приведёт к исключению UnsupportedOperationException.
Синтаксис
stream.toList()
Пример
Давайте соберём элементы потока в список:
import java.util.List;
import java.util.stream.Stream;
public class Main
{
public static void main(String[] args)
{
List<String> res = Stream.of("a", "b", "c", "d", "e")
.toList();
System.out.println(res);
}
}
Результат выполнения кода:
[a, b, c, d, e]
Пример
Давайте применим промежуточные операции
filter и map, а затем соберём
результат в список:
import java.util.List;
import java.util.stream.Stream;
public class Main
{
public static void main(String[] args)
{
List<Integer> res = Stream.of(1, 2, 3, 4, 5)
.filter(n -> n % 2 == 0)
.map(n -> n * 10)
.toList();
System.out.println(res);
}
}
Результат выполнения кода:
[20, 40]
Пример
Давайте убедимся, что полученный список является неизменяемым:
import java.util.List;
import java.util.stream.Stream;
public class Main
{
public static void main(String[] args)
{
List<String> res = Stream.of("abcde")
.toList();
try {
res.add("12345");
} catch (UnsupportedOperationException e) {
System.out.println("List is immutable");
}
}
}
Результат выполнения кода:
"List is immutable"