Посмотрев видео про стримы в начале изучения джавы, это видео казалось запутнным и сложным. Спустя 8 месяцев изучения джавы и поработав и написав пет проект с использованием спринга , и занявшесь уплотнением знаний стримов и т.д., наткнулся на видео снова , насколько же просто смотреть и все понимать )
Впервые до Java узнал о функциональном подходе в Python (цепочки методов map, reduce, filter, ...). Python - хороший язык для понимания функционального подхода в первый раз.
Спасибо за видео, очень доступно объясняете. Понятные примеры со сравнением аналогичной логики программы с использованием старых методик(for, if..). Побольше бы таких видео..
Спасибо за хорошее видео. Было бы хорошо если вы продолжили снимать на примерах про нововведения Java 8, такие как: Лямбда, Optional, Функциональные интерфейсы
Здорово! Мне понравилось изложение материала. Я сейчас как раз изучаю Java и не так давно проходил Streamы, и в вашем видео было всё понятно, за одно повторил их немного.
Respect! очень здорово объясняешь/ я как 20 дней изучаю сам Stream не смог сделать общую понятию про это/ спасибо тебе !!!! других новый материалов тоже объяснил бы так как сравнив со старой версий//// спасибо тебе !
Группировку старым способом я бы сделал по другому - не сначала запихал все специальности в мапу, а при обходе коллекции проверял на наличие ключа, если такой ключ есть, то добавляем сотрудника в лист значений, если нет, то создаем новый Entry. Да и цикл в старых способах нужно использовать foreach который - кода было бы гораздо меньше
Крутое видео, как и все остальные, очень нравится смотреть талантливых авторов, спасибо за труды) И еще вопрос, где можно попрактиковаться по Java Stream API? Может быть есть книги, где много практических заданий или сайты, очень хочется самому порешать что-то. Буду очень благодарен Вашему фидбеку)
С удовольствием пересматриваю данное видео и возник вопрос: насколько мы теряем в скорости, когда применяем стримы? Критично ли это при работе с большими коллекциями?
Есть хорошая статья: dzone.com/articles/java-performance-for-looping-vs-streaming В целом, на современных JVM и оборудовании - без разницы :) Но, в каждом конкретном случае нужно замерять самому для проверки.
Лично я уже забыл, когда в прод деливерил код без StreamAPI =) я когда вижу не стрим код в обычной бизнес логике (не перфоменсной), принимаю его как legacy
Функциональные интерфейсы (а именно возможность заменить его лябдой, как и сами лябды) появились уже в Java 8, List.of делает то же самое, что и старый Arrays.asList возвращая тот же самый иммутабельный список. Так же в Java 8 появился и method reference, который очень активно используется в примерах, но никак не обозначается и не объясняется. Но вообще интересное видео) правда сам ещё пишу на восьмой джаве, но похоже пора уже осваивать одиннадцатую)
По функциональным интерфейсам и метод референс - согласен на 100%. А вот asList() возвращает мутабельный лист, List.of() - иммутабельный. И спасибо за отзыв :)
@@EugeneSuleimanov думаю, неужели меня уже склероз хватил в мои то годы?) в общем полез в доки и напротив asList() стоит "Returns a fixed-size list backed by the specified array", понимаю что это не совсем иммутабельный лист, но на практике почти всегда он таковым и является, так что вы правы в том, что разница всё-таки есть
@@_Vertan_ тоже самое - полез в доку после того, как написал - сомнения появились. По факту вы правы - на практике, в 99% случаев - разницы нет. Спасибо за ваше уточнение.
Eugene, смогу ли я под вашим началом написать робота для торговой платформы, которая дает приказы на покупку-продажу в зависимости от новостных API данных , которые приходят с другого сервера ? Я даже не знаю к какому виду программирования это относится, не могли бы мной заняться этой темой? О себе, с математикой, физикой дружу в программировании знаний нет.
Начал переписывать в IDEA Ваш код и наткнулся на кучу красных подчеркиваний (SDK 11 использую, а вот project language level также 11). Может нужен другой project level?. Спасибо за ценные знания.
@@EugeneSuleimanov почему не рассказали про метод comparing? ведь Comparator ассоциируется с реализацией единственного абстрактного метода compare(T o1, T o2).
Спасибо за видео конечно, но причем тут 11я java? Stream API добавили не после 8й, а непосредственно в 8й вместе с лямбдами, функциональными интерфейсами, Optional и Date/Time API. В 11й если не ошибаюсь добавили только var для лямбд и что-то еще по мелочи. Вы прежде чем собеседовать людей сами то смотрели что и в какой версии появилось?
Вероятнее всего, план в текстовом файле написан не корректно и вводит в заблуждение, но, не могли бы вы скинуть тайминг где я сказал, что функционализмов появилась в 11 версии? Спасибо.
Как сказать, на моих проектах - нововведения катастрофически облегчают разработку. Стримы, функциональщина и т.д. А вот отступление от предыдущей модели - это есть, точно :)
что за дичь? в java 8 уже был Arrays.asList, функциональные интерфейсы появились не после java 8, а в ней же они и появились! кстати для перечислений лучше использовать равенство. Удивительный человек сам не знает что нового где добавили но собеседует и критикует других людей
По поводу сравнения енамов - здесь холивар идет давно и я, конечно же, изучал аргументы Блоха по этому поводу. Поэтому говорить, что лучше, а что нет - крайне спорный вопрос и однозначного ответа на этот вопрос нет. Все крайне зависит от ситуации. В любом случае спасибо, всегда рад конструктивной критике, в реальной жизни этого часто не хватает. Хотя, я бы не был столь резким в высказываниях.
Этот мужик заслуживает больше лайков и подписчиков!
Посмотрев видео про стримы в начале изучения джавы, это видео казалось запутнным и сложным. Спустя 8 месяцев изучения джавы и поработав и написав пет проект с использованием спринга , и занявшесь уплотнением знаний стримов и т.д., наткнулся на видео снова , насколько же просто смотреть и все понимать )
мне после javascript и без явы всё понятно, в яваскрипте это по дефолту
Впервые до Java узнал о функциональном подходе в Python (цепочки методов map, reduce, filter, ...). Python - хороший язык для понимания функционального подхода в первый раз.
++++
Как здорово ты объясняешь, Евгений!!! Продолжай, пожалуйста!
Спасибо за отзыв, Наталья!
Как всегда, огромная благодарность за видео!
Спасибо за отзыв :)
Сегодня это видео мне очень помогло, не знаю, чтобы я без него делал. Спасибо!
Спасибо за отзыв!
Рад, что материал оказался полезен.
Очень доступное объяснение, без воды и многословия.
Блин, Женька как всегда красавчик) вот стримы - вот так вот с ними работать надо. Все понятно и без воды! спасибо
Спасибо за отзыв:)
Одно удовольствие смотреть твои обучающие видео.
Спасибо за отзыв!
3:35
Стоит упомянуть, что при List.of и тп -> создается Unmodifiable (Immutable) коллекция
Т.е с ним нельзя проводить операции replace/add/remove
Спасибо за Ваш труд! Коммент в поддержку канала.
Спасибо за поддержку!
Спасибо за видео, очень доступно объясняете. Понятные примеры со сравнением аналогичной логики программы с использованием старых методик(for, if..).
Побольше бы таких видео..
Спасибо за отзыв!
Спасибо, всё упорядочено, сгруппировано и, как следствие, просто.
Спасибо за отзыв!
Определенно лучшее видео!
Большое спасибо, Евгений. Очень хорошее понятное видео. Продолжайте, пожалуйста.
Спасибо за отзыв!
Красавчик! Дай бог тебе здоровье и много много хорошего! Спасибо за твои видосы.
Спасибо :)
Ничего нового - Евгений как всегда всё разложил ну просто гениально.
Спасибо за хорошее видео. Было бы хорошо если вы продолжили снимать на примерах про нововведения Java 8, такие как: Лямбда, Optional, Функциональные интерфейсы
Готовлюсь к собеседованию. Огромная благодарность за такой понятный урок!!!
Отличное видео на примерах. Спасибо за материал. P.S. Будет здорово увидеть похожее видео по новым фичам из Java 11)))
Спасибо за отзыв. Есть наработки по этой теме, но, не знаю, когда смогу выложить видео
Супер продуктивно Евгений ! Спасибо !
комментарий для развития Вашего канала, спасибо за ценную информацию, успехов!
Спасибо!
Здорово! Мне понравилось изложение материала. Я сейчас как раз изучаю Java и не так давно проходил Streamы, и в вашем видео было всё понятно, за одно повторил их немного.
Спасибо за отзыв :)
Комментарий для развития канала)
Спасибо вам!
Respect! очень здорово объясняешь/ я как 20 дней изучаю сам Stream не смог сделать общую понятию про это/ спасибо тебе !!!! других новый материалов тоже объяснил бы так как сравнив со старой версий//// спасибо тебе !
Спасибо за отзыв, рад, что материал оказался полезен :)
Спасибо за труды! Ты молодец! 👍👍👍
Спасибо за отзыв :)
Спасибо большое. Очень нужное видео. Все понятно и по делу.
Спасибо за отзыв!
Как всегда топ контент. Спасибо.
пурум пурум))!
Евгений, спасибо, крутой обзор
Группировку старым способом я бы сделал по другому - не сначала запихал все специальности в мапу, а при обходе коллекции проверял на наличие ключа, если такой ключ есть, то добавляем сотрудника в лист значений, если нет, то создаем новый Entry. Да и цикл в старых способах нужно использовать foreach который - кода было бы гораздо меньше
Крутое видео, как и все остальные, очень нравится смотреть талантливых авторов, спасибо за труды)
И еще вопрос, где можно попрактиковаться по Java Stream API? Может быть есть книги, где много практических заданий или сайты, очень хочется самому порешать что-то. Буду очень благодарен Вашему фидбеку)
Спасибо за отзыв! Думаю, здесь наиболее полная информация
www.oracle.com/technical-resources/articles/java/ma14-java-se-8-streams.html
Спасибо!
Спасибо за понятное объяснение!
Спасибо, очень полезное практическое видео! Надеюсь, почитаю ссылки и буду еще более благодарен =)
Супер, все очень доходчиво 👍
Спасибо за отзыв!
Спасибо огромное
Спасибо за отзыв!
Спасибо, отличный урок
Крутотень
Спасибо за видео очень полезно
Евгений, так , уточнить бы. Вы сказали , чтобы сортировкой пузырька не пользовались, а что лучше ?) Какой алгоритм?
С удовольствием пересматриваю данное видео и возник вопрос: насколько мы теряем в скорости, когда применяем стримы? Критично ли это при работе с большими коллекциями?
Есть хорошая статья:
dzone.com/articles/java-performance-for-looping-vs-streaming
В целом, на современных JVM и оборудовании - без разницы :)
Но, в каждом конкретном случае нужно замерять самому для проверки.
@@EugeneSuleimanov Спасибо!
Привет по тебе очень хорошо видно, что ты отлично знаешь java. Не можешь подсказать где ты учил этот яп:) буду очень благодарен
Спасибо
Спасибо большое за обьяснение))
Здравствуйте! можете снять видео с объяснением аннотации в спринге и как можно написать свою)) спасибооооооо
Спасибо за видео.
Спасибо за отзыв!
Спасибо за видео. Использование стримов на много увеличивает производительность программы или это больше для красоты?
Стримы медленнее, но вы этого, скорее всего, даже не заметите.
Лично я уже забыл, когда в прод деливерил код без StreamAPI =) я когда вижу не стрим код в обычной бизнес логике (не перфоменсной), принимаю его как legacy
Благодарю!
Функциональные интерфейсы (а именно возможность заменить его лябдой, как и сами лябды) появились уже в Java 8, List.of делает то же самое, что и старый Arrays.asList возвращая тот же самый иммутабельный список. Так же в Java 8 появился и method reference, который очень активно используется в примерах, но никак не обозначается и не объясняется. Но вообще интересное видео) правда сам ещё пишу на восьмой джаве, но похоже пора уже осваивать одиннадцатую)
По функциональным интерфейсам и метод референс - согласен на 100%. А вот asList() возвращает мутабельный лист, List.of() - иммутабельный. И спасибо за отзыв :)
@@EugeneSuleimanov думаю, неужели меня уже склероз хватил в мои то годы?) в общем полез в доки и напротив asList() стоит "Returns a fixed-size list backed by the specified array", понимаю что это не совсем иммутабельный лист, но на практике почти всегда он таковым и является, так что вы правы в том, что разница всё-таки есть
@@_Vertan_ тоже самое - полез в доку после того, как написал - сомнения появились.
По факту вы правы - на практике, в 99% случаев - разницы нет. Спасибо за ваше уточнение.
@@EugeneSuleimanov вам спасибо за ваш труд, смотрю ваши видео по спрингу с большим удовольствием и пользой)
Лайк.
Eugene, смогу ли я под вашим началом написать робота для торговой платформы, которая дает приказы на покупку-продажу в зависимости от новостных API данных , которые приходят с другого сервера ? Я даже не знаю к какому виду программирования это относится, не могли бы мной заняться этой темой? О себе, с математикой, физикой дружу в программировании знаний нет.
Спасибо за урок! Вопрос такой не должен ли .iml файл тоже быть в гитигноре?
BigDecimal - зарплата тонко)
Евгений, пожалуйста, подскажите, как выглядел бы метод увеличения ЗП каждому сотруднику вдвое со стримами.
Спасибо!
Спасибо за видео, как всегда супер
А как вы в идеи увеличиваете шрифт?
Спасибо :)
У меня: CTRL + колесо мыши вперед/назад
Но, это в настройках нужно включить
Подскажите как можно грамотно обработать -NullPointerException- в рамках представленных стримов?
Если я верно понял вопрос, то
.orElse
.ifPresent
.or
Начал переписывать в IDEA Ваш код и наткнулся на кучу красных подчеркиваний (SDK 11 использую, а вот project language level также 11). Может нужен другой project level?. Спасибо за ценные знания.
нашел еще 2 класа Specialist и Specialty и все встало на свои места
Очень сильно напиоминает англоязычное видео Amigoscode :))
прум-прум-прум )
Время 14:56. Строка 48: matchAnyEnginner -> matchAnyEngineer
Спасибо за подсказку. Пропустил опечатку.
@@EugeneSuleimanov Даже не надеялся, что вы прочтете мой комментарий на столь давнем видео =)
Очень помогают ваши видео, спасибо!
@@Стрижков спасибо за отзыв
Привет! А можно этого кода в Рэпо ? Если есть как тебя там найти ?
топОрный! Проверочное слово "топОр", а не "тОпор".
List of, если не ошибаюсь, вернёт иммутабильную коллекцию и если в дальнейшем надо в неё добавлять/удалять, то не подходит данный метод
Да, все верно. Но, в рамках данного примера, нам нужна была именно иммутабельная коллекция.
@@EugeneSuleimanov Забыл сказать спасибо за хорошо изложенный материал.
@@EugeneSuleimanov
а почему именно immutable была нужна?
@@EugeneSuleimanov
почему не рассказали про метод comparing? ведь Comparator ассоциируется с реализацией единственного абстрактного метода compare(T o1, T o2).
Спасибо за видео конечно, но причем тут 11я java? Stream API добавили не после 8й, а непосредственно в 8й вместе с лямбдами, функциональными интерфейсами, Optional и Date/Time API. В 11й если не ошибаюсь добавили только var для лямбд и что-то еще по мелочи. Вы прежде чем собеседовать людей сами то смотрели что и в какой версии появилось?
Вероятнее всего, план в текстовом файле написан не корректно и вводит в заблуждение, но, не могли бы вы скинуть тайминг где я сказал, что функционализмов появилась в 11 версии? Спасибо.
не хватает map и flatmap
Скажите пожалуйста какие недостатки есть у стримов ?
Недостаток, растрата памяти на копирование данных, чтобы уложить их в поток
Этот видос можно переименовать : сравнение 11 и 7 версии по Stream
После 7 версии Java куда-то не туда понесло...
Как сказать, на моих проектах - нововведения катастрофически облегчают разработку. Стримы, функциональщина и т.д. А вот отступление от предыдущей модели - это есть, точно :)
Автор, удели внимание качеству изображения.. фокусировка происходит минутами.. неужели нельзя пересмотреть свое же видео перед тем как выложить.
сильно надеюсь, что мы никогда не станем коллегами.
Это бывает
что за дичь? в java 8 уже был Arrays.asList, функциональные интерфейсы появились не после java 8, а в ней же они и появились! кстати для перечислений лучше использовать равенство. Удивительный человек сам не знает что нового где добавили но собеседует и критикует других людей
Да, вы правы, изменение в компараторе было в java 8. Не хотел и показаться бестактным и
критиковать. Но, List.of точно появилось после 8 версии :)
По поводу сравнения енамов - здесь холивар идет давно и я, конечно же, изучал аргументы Блоха по этому поводу. Поэтому говорить, что лучше, а что нет - крайне спорный вопрос и однозначного ответа на этот вопрос нет. Все крайне зависит от ситуации. В любом случае спасибо, всегда рад конструктивной критике, в реальной жизни этого часто не хватает. Хотя, я бы не был столь резким в высказываниях.
убрать пурум-пурум из речи и будет нормально
не трогай пурум-пурум!