Спасибо большое, постоянно использовал циклы и избегал Stream. Полтора года в QAA, по началу казалось сложно и отодвигал до последнего(Да и мало кто из QA их использует, видимо по той же причине). Теперь буду использовать везде, где это обосновано, уж очень симпатично выглядит. Подписался.
Лучшее видео по стрим апи, которое я видел. Было бы классно углубится в эту тему и ещё рассказать про функциональные интерфейсы. Часто спрашивают на собеседованиях именно о них)
Большое спасибо за видео!!! Даже не знаю, как еще выразить благодарность. Дело в том, что я джун в компании, устроился совсем недавно, и темы ваших роликов как раз совпадают с изучаемыми мной темами.
Сначала было тяжело понимать, потом скорость 0,75 поставил и класс. Осталось заставить себя перейти с циклов на стримы, чтобы практикой это все закрепить
Годные и информативные видосы, спасибо за контент! Было бы здорово увидеть туториал по Spring security в вашем исполнении) Желательно более углубленно и информативно нежели уже есть на канале
Что можете сказать по поводу производительности стримов в сравнении со старыми подходами? Например, что быстрее, конвертировать коллекцию доменов в коллекцию ДТО через фор-ич или через стрим апи? В чем сок использования для простых операций? Только лишь в читабельном и компактном коде?
я сразу поясню, я новичок и я как раз из тех "староверов", которые все до сих пор делают в циклах, ибо так научился изначально, а чтобы постичь новое, надо сперва понять преимущества нового над старым
Вообще не факт что стримы медленнее, может там под капотом jvm как-то оптимизирует это дело. И даже если и медленнее, то вопрос только в том что тебе нужно читабельный код или производительность. По дефолту на первом месте читабельный код, а декларативный подход(функциональщина, стримы) проще читать нежели императивный(циклы). Очень узкий кейс должен быть, когда ты не юзаешь стримы ради производительности, возможно, тебе тогда вообще не стоит писать на java, если тебе нужна производительность, посмотри в сторону С++, например.
Видео хорошее, только ваш обход списка работает, если самая корневая нода (у которой нет родителя) находится под первым индексом в списке, иначе она будет будет рекурсивно передаваться как аргумент чайлд департамента и дерево не сможет создаться, так как у нескольких департаментов не будет родителей
Я может немного туплю, но как так получается что вы просто пишете вызов стрима(или любого метода), а идея сама дополняет тем, что кладет его в переменную с нужным обозначением вида? Пока я не объявлю новую переменную, я не могу вызвать Stream.of или что-то другое
Видео для тех, кто уже что-то знает про стримы. Я вообще ничего не понял. Куда то летит, миллион всего объясняет. 0 шансов запомнить и тем более понять
СОДЕРЖАНИЕ
0:52 Стримы из объектов файловой системы
0:55 Files.lines()
1:11 Files.list()
1:20 Files.walk()
1:50 Стримы из примитивов
2:02 IntStream
2:12 DoubleStream
2:23 IntStream.range()
2:42 IntStream.rangeClosed()
2:54 Arrays.stream()
Стримы из объектов
3:11 Stream.of(Object)
3:35 Stream.builder()
3:54 Collection.stream()
4:15 Collection.parallelStream()
4:45 Stream.generate()
5:37 Stream.iterate()
6:26 Stream.concat()
Терминальные операции
7:15 Stream.count()
7:20 Stream.forEach()
7:52 Collection.forEach()
8:04 Stream.forEachOrdered()
8:27 Stream.collect()
8:51 Stream.toArray()
8:56 Stream.collect(toMap())
9:40 IntStream.reduce()
10:06 Stream.reduce()
12:21 IntStream.average(), IntStream.max(), IntStream.min(), IntStream.sum(), IntStream.summaryStatictics()
12:44 Stream.max(), Stream.min()
13:09 Stream.findAny(), Stream.findFirst()
13:35 Stream.noneMatch()
14:02 Stream.anyMatch()
14:13 Stream.allMatch()
15:01 Трансформации стримов
15:08 IntStream.mapToLong()
15:19 IntStream.mapToObj()
15:52 IntStream.distinct()
16:08 Stream.filter()
16:29 Stream.skip()
16:34 Stream.limit()
17:26 Stream.sorted()
17:45 Stream.map()
18:01 Stream.peek()
18:46 Stream.takeWhile()
19:25 Stream.dropWhile()
21:20 Stream.flatMap()
23:49 Примеры использования
добавь в описание 0:00 Старт и тайм-коды попадут на ленту видео
Спасибо большое, постоянно использовал циклы и избегал Stream. Полтора года в QAA, по началу казалось сложно и отодвигал до последнего(Да и мало кто из QA их использует, видимо по той же причине). Теперь буду использовать везде, где это обосновано, уж очень симпатично выглядит.
Подписался.
*Отличное наглядное пособие по Stream!*
Для полноты картины только, можно было бы в начале сказать, что такое Stream...
Внезапно не подумал, что кто-то не знает. Зашоренность. :)
@@letsCodeDru
Не знает - ладно. Я до сих пор stream ассоциирую с С-шными потоками...
@@letsCodeDru плюсую, может, в видео про лямбды пройдетесь по определениям стримов и лямбд одним махом?
видео изумительно) спасибо! Жду новых видео по Java
Очень позновательно, быстро и без воды. Не как вот эти: а сегодня мы бе ме ге, аааа, еее. 👍🏻
Очень полезное видео, спасибо!
Лучшее видео по стрим апи, которое я видел. Было бы классно углубится в эту тему и ещё рассказать про функциональные интерфейсы. Часто спрашивают на собеседованиях именно о них)
Большое спасибо за видео!!! Даже не знаю, как еще выразить благодарность. Дело в том, что я джун в компании, устроился совсем недавно, и темы ваших роликов как раз совпадают с изучаемыми мной темами.
Чрезвычайно содержательное видео! Все подробно и без ошибок, эканий и бэканий. За таймкоды в описании отдельное спасибо!
Спасибо большое!! Даешь очень просто приложения по Spring Cloud!! =))
Как-то пропустил) Крутой видос, и реально полезный! Исправляюсь: Like as usual!
Спасибо БОЛЬШОЕ за видео! Пока что не понятно как работает эта тёмная магия)) Нужно ещё погонять этот ролик speed 0,1))
Круть! Концентрация полезности зашкаливает )) При этом доступность и изложение инфы на высоте
это самое содержательное видео на ютубе , лайк)
Отличная демонстрация Stream API, с удовольствием посмотрел бы еще по Optional
одна из самых актуальных тем, спасибо!
супер! мне (как тупому) ничего не понятно, но кажется что объяснение хорошее!)
Это норма. Я учебные видосы и статьи тоже по несколько раз пересматриваю/перечитываю
@@letsCodeDru дорогу осилит идущий
Прикольная штука. Недавно узнал об akka-streams, по документации можно более наглядно посмотреть и понять для чего они вообще нужны. +back pressure
Очень круто, кратко и емко!
и четко)
Сначала было тяжело понимать, потом скорость 0,75 поставил и класс. Осталось заставить себя перейти с циклов на стримы, чтобы практикой это все закрепить
codewars например хорошо помогает
спасибо за идею про скорость! реально нормально стало! автор на спидах)))
Я как изучил стримы тоже везде их лепил, а оказывается, как отметил автор, только в больших коллекциях получается выигрыш в производительности.
@@АнатолийТ-д6л речь шла о parallel stream.
Годные и информативные видосы, спасибо за контент! Было бы здорово увидеть туториал по Spring security в вашем исполнении) Желательно более углубленно и информативно нежели уже есть на канале
Очень качественное, информативное объяснение!
2:12 у меня комбинация Ctrl+Alt+Shift почему то не работает на Винде, может какая то другая комбинация по умолчанию?
Спасибо, очень интересно!
Спасибо. Отличный урок!
Что можете сказать по поводу производительности стримов в сравнении со старыми подходами? Например, что быстрее, конвертировать коллекцию доменов в коллекцию ДТО через фор-ич или через стрим апи? В чем сок использования для простых операций? Только лишь в читабельном и компактном коде?
я сразу поясню, я новичок и я как раз из тех "староверов", которые все до сих пор делают в циклах, ибо так научился изначально, а чтобы постичь новое, надо сперва понять преимущества нового над старым
Компактность. Big O не зависит что используется, и там и там возможно медленная скорость.
Вообще не факт что стримы медленнее, может там под капотом jvm как-то оптимизирует это дело. И даже если и медленнее, то вопрос только в том что тебе нужно читабельный код или производительность. По дефолту на первом месте читабельный код, а декларативный подход(функциональщина, стримы) проще читать нежели императивный(циклы). Очень узкий кейс должен быть, когда ты не юзаешь стримы ради производительности, возможно, тебе тогда вообще не стоит писать на java, если тебе нужна производительность, посмотри в сторону С++, например.
blog.jooq.org/2015/12/08/3-reasons-why-you-shouldnt-replace-your-for-loops-by-stream-foreach/
То что надо! Лайк, подписка, колокольчик (вру... давно подписан 😀)
Привет, огромное спасибо за видео.
2:15
Ребят, обертки только для double,long,int - и все!
Никаких "boolean и так далее" - нет.
Просто здорово. Спасибо за труд.
Спасибо за урок!
Вы конечно извините, но это лайк и подписка..
Оче6нь информативною. Спасибо
Хорошая подача, спасибо.
По твоим видосам устроился на работу)))))))) Спасибо за годноту
Рад, что имею к этому отношение. Проставляйся с первой ЗП, реквизиты под каждым видео 😅
Шикарное видео! Спасибо
ребята, подскажите сочетание клавиш на 9:34 )
возможно ctrl+alt+enter на винде.
Спасибо за превосходные видео!
Видео хорошее, только ваш обход списка работает, если самая корневая нода (у которой нет родителя) находится под первым индексом в списке, иначе она будет будет рекурсивно передаваться как аргумент чайлд департамента и дерево не сможет создаться, так как у нескольких департаментов не будет родителей
Очень круто! Спасибо!
Спасибо! Все было понятно
спасибо. только это походу для тех, кто уже работает разработчиком, а не изучает)
хороший урок!
Например, моднейшее написание стримов, например 😃
10:50 Пример с reduce() и рекурсией пришлось пересматривать несколько раз пока усвоил. Это нормально? :D
Чтобы понять рекурсию, нужно понять рекурсию
ты классный, спасибо тебе)
Голова задымилась😁
Спасибо автор! Огромная работа проделана и всего в 27 минут вложили! Искусство!
Годно! Спасибо
Стримы топ, но пользоваться ими без документации я почему-то не могу. Куча похожих методов и подводных камней.
Разжевал и в рот положил! Спасибо! Вкусно!
Спасибо)
Я может немного туплю, но как так получается что вы просто пишете вызов стрима(или любого метода), а идея сама дополняет тем, что кладет его в переменную с нужным обозначением вида? Пока я не объявлю новую переменную, я не могу вызвать Stream.of или что-то другое
ctrl+alt+v и идея сама засунет все в переменную если это возможно
Видео очень полезное, но будут уроки по Spring Boot с использованием JavaScript и framework Ajax, JQuery ......?
Пушка!
Класс!
Thank you so much.
Раз ты стримы затронул, может и лямды уже добьешь туда сразу?)
Угу. Запланировано ужо.
@@letsCodeDru Спасибо за супер-видос! А лямбды выйдут? :)
что это за тема в идеи?
Darcula
letsCode спасибо! странно, она выглядит совсем не так как у меня ( наверное от ОС зависит
Стримы от io ресурсов , таких как файл, нужно явно закрывать или оборачивать в try with resources
или аналогичной структуре
боже чтоже так быстро то у меня сейчас голова взорвется, можно тоже самое но 10 видео продолжительностью как это? XD
Скорость воспроизведения х0,75 и всё четко (=
like!
😀
Hipster stuff
Джава, а не ява!!!
Ойфсё
Скорость понимания видео рассчитана как минимум на мидла
Классно. Но ничего не понятно )
Видео для тех, кто уже что-то знает про стримы. Я вообще ничего не понял. Куда то летит, миллион всего объясняет. 0 шансов запомнить и тем более понять
ява - это мотоцикол. А язык программирования - это джава.
2430
Самого интересного нет.
Какая нафиг Ява?))) ничего что создатели языка называют ее джава?)))
Еще за запятые его поругайте : ай яй яй, дядя Андрей, такой бАльшой и усатый, а все "ошибаешся"
Иван Иванов спасибо, надо щемить лоха и за запястья
@@dv5686 как то странно слышать спасибо, после сарказма.
Иван Иванов сарказм, который мы заслужили:)))
Ужасное объяснение.