Как быть, если в списке есть элемент null

  • 19
  • Недоступна
Задача метода printList(List<String>) — вывести в консоли все элементы списка, полученного как параметр, в том же порядке. Но есть один нюанс. В списке могут быть элементы, равные null. Твоя задача — вывести все элементы списка в консоли, а вместо null — фразу: Этот элемент равен null В методе pri
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (59)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Laziz Karimov
Уровень 22, Noyabrsk
11 июня, 13:09
Кто понял, хелп! Я правильно понимаю, что с помощью мап, поток перевели в класс Optinal? Где метод ofNullable может принимать в значение null?
Anonymous #00111111
Уровень 21, Москва, Russian Federation
14 июня, 12:07
ниже есть решение с мап, но мне, наоборот не понятно, зачем он тут нужен.
Optional<Т> obj2 = Optional.ofNullable(Т obj1); //тип данных Т и там и тут указан
код //второй строкой, проверяем obj2 на наличие null-ссылки и передаем значение, если все таки null.
Ну и соответственно, можно сократить запись, т.к. obj2 в обоих строках кода присутствует (получиться в одну строчку).
Inna
Уровень 24, United States
5 июня, 18:52
Просто нужно вместо forEach использовать лябма выражение forEach. Совет сначала распешите полностью forEach и посмотрите соответсвует ли выход условию, а потом попробуйте по нему составить лябму.
Lyokha Blagodatskikh
Уровень 24, Ural, Russian Federation
2 июня, 05:14
Условие: "нельзя использовать циклы" - сидишь ломаешь голову как вывести элементы списка с проверкой на null не перебирая их в цикле... правильное решение: list.forEach... Халера...
Роман мастер-энергетик
31 мая, 14:28
Сначала по запарке сделал через for , это называется поспешишь людей насмешишь или читай условия полностью. После полчаса убил на то чтоб найти решение не используя stream, и всё же мне показалось, что правильное решение лежит через него, поэтому накатал код (тоже убил порядка минут 20) кому интересно, вот вариант
list.stream()
                .map(Optional::ofNullable)
                .map(s-> s.orElse(text))
                .forEach(System.out::println);
Refflexer (Анатолий)
Уровень 12
2 июня, 11:03
Интересное решение, добавил себе как альтернативное. Почему то кажется что порядок элементов изменится, но нет, все как надо.
Сонмониус
Уровень 33, Харьков, Ukraine
25 мая, 17:19
решил костылями через стримы. А тут оказывается строчки кода достаточно)
Denis Malyshev QA в Sber
5 мая, 16:17
Так и не понял зачем там ofNullable()...
Сонмониус
Уровень 33, Харьков, Ukraine
25 мая, 17:21
там человек ниже писал "Optional.of бросит исключение NullPointerException, если ему передать значение null в качестве параметра. Optional.ofNullable вернёт Optional, не содержащий значение, если ему передать null."
Blynchik Работает в Pegas Touristik
5 мая, 12:55
Долго решал задачу. Вот логика, по которой решил. Каждый элемент списка (используем forEach) нужно вывести на экран (System.out.println) с помощью служебного класса Optional (Optional.ofNullable(s)), но при этом, если элемент пустой, то нужно заменить его на text (.orElse(text)).
milyasow
Уровень 30, Москва, Russian Federation
26 апреля, 14:24
Использовал map() для превращения потока типа String в поток типа Optional, чтобы в дальнейшем можно было применять к его элементам метод orElse(text).
Денис
Уровень 26, Омск, Russian Federation
2 мая, 19:54
Согласен, так даже логичнее код выглядит чем в решении.
Alex Bit (Воронеж)
Уровень 25, Воронеж, Russian Federation
22 апреля, 13:24
for (String lists: list){ if (lists==null){System.out.println(text);continue;} System.out.println(lists); } не прокатит по условию.
Erizo
Уровень 23, Минск, Belarus
15 марта, 14:25
классная задачка) потоки сначала жутко сложными кажутся, но когда понимаешь как с ними работать такой кайф)