Как оплачивать зарубежные сервисы в 2026 году?
Можно бегать между посредниками и бояться блокировок после оплаты, а можно выпустить международную карту Lumio Pay и пользоваться любимыми сервисами без рисков.
— выпуск карты за 2 минуты
— лучший курс пополнения на рынке (у конкурентов на 20% выше)
— пополнение рублями или криптой
— чистые BIN карт, оплата без риска блокировок
Пока все ищут идеальное решение, оно у тебя перед глазами: @LumioPay
Можно бегать между посредниками и бояться блокировок после оплаты, а можно выпустить международную карту Lumio Pay и пользоваться любимыми сервисами без рисков.
— выпуск карты за 2 минуты
— лучший курс пополнения на рынке (у конкурентов на 20% выше)
— пополнение рублями или криптой
— чистые BIN карт, оплата без риска блокировок
Пока все ищут идеальное решение, оно у тебя перед глазами: @LumioPay
❤1
Почему после Stream.toList() нельзя добавить элемент?
При работе со Stream часто нужно собрать результаты обратно в список. Короткая запись выглядит естественно:
Но у Stream.toList() есть важное свойство, он возвращает немодифицируемый список. Такой код не добавит третье имя:
Вместо изменения списка программа получит UnsupportedOperationException. То же произойдёт при remove или set.
Если нужен готовый результат только для чтения, это как раз удобно:
Вызывающий код не сможет случайно поменять состав labels. При этом сами элементы могут оставаться изменяемыми, не модифицируемость списка не делает глубоко неизменяемыми объекты внутри него.
Если список нужно дополнять после сбора, задайте изменяемую коллекцию явно:
Теперь add и remove доступны. Есть и вариант обернуть готовый результат:
Выбирайте способ сбора по тому, что будет происходить со списком дальше. Для чтения подойдёт toList(), для дальнейших изменений лучше явно создать ArrayList.
👉 Java Ready | #совет
При работе со Stream часто нужно собрать результаты обратно в список. Короткая запись выглядит естественно:
var names = Stream.of("Ana", "Bob").toList();Но у Stream.toList() есть важное свойство, он возвращает немодифицируемый список. Такой код не добавит третье имя:
names.add("Cyd");Вместо изменения списка программа получит UnsupportedOperationException. То же произойдёт при remove или set.
Если нужен готовый результат только для чтения, это как раз удобно:
List<String> labels = users.stream()
.map(User::name)
.toList();
Вызывающий код не сможет случайно поменять состав labels. При этом сами элементы могут оставаться изменяемыми, не модифицируемость списка не делает глубоко неизменяемыми объекты внутри него.
Если список нужно дополнять после сбора, задайте изменяемую коллекцию явно:
var names = Stream.of("Ana", "Bob")
.collect(Collectors.toCollection(ArrayList::new));Теперь add и remove доступны. Есть и вариант обернуть готовый результат:
var names = new ArrayList<>(stream.toList());
Выбирайте способ сбора по тому, что будет происходить со списком дальше. Для чтения подойдёт toList(), для дальнейших изменений лучше явно создать ArrayList.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥4