Java Stream API: функционально, модно, молодёжно!

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ • 105

  • @letsCodeDru
    @letsCodeDru  5 років тому +36

    СОДЕРЖАНИЕ
    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 Примеры использования

    • @Tiertey
      @Tiertey 4 роки тому +1

      добавь в описание 0:00 Старт и тайм-коды попадут на ленту видео

  • @Hocorend
    @Hocorend 2 місяці тому

    Спасибо большое, постоянно использовал циклы и избегал Stream. Полтора года в QAA, по началу казалось сложно и отодвигал до последнего(Да и мало кто из QA их использует, видимо по той же причине). Теперь буду использовать везде, где это обосновано, уж очень симпатично выглядит.
    Подписался.

  • @victormog
    @victormog 5 років тому +48

    *Отличное наглядное пособие по Stream!*
    Для полноты картины только, можно было бы в начале сказать, что такое Stream...

    • @letsCodeDru
      @letsCodeDru  5 років тому +12

      Внезапно не подумал, что кто-то не знает. Зашоренность. :)

    • @victormog
      @victormog 5 років тому +1

      @@letsCodeDru
      Не знает - ладно. Я до сих пор stream ассоциирую с С-шными потоками...

    • @kunnilinux
      @kunnilinux 5 років тому +9

      @@letsCodeDru плюсую, может, в видео про лямбды пройдетесь по определениям стримов и лямбд одним махом?

  • @LAZIO14
    @LAZIO14 Рік тому

    видео изумительно) спасибо! Жду новых видео по Java

  • @Kepchyk1101
    @Kepchyk1101 Рік тому

    Очень позновательно, быстро и без воды. Не как вот эти: а сегодня мы бе ме ге, аааа, еее. 👍🏻

  • @ИринаЗазыбо
    @ИринаЗазыбо 5 років тому +23

    Очень полезное видео, спасибо!

  • @ДанилЧерепанов-щ6т
    @ДанилЧерепанов-щ6т 2 роки тому +4

    Лучшее видео по стрим апи, которое я видел. Было бы классно углубится в эту тему и ещё рассказать про функциональные интерфейсы. Часто спрашивают на собеседованиях именно о них)

  • @kunnilinux
    @kunnilinux 5 років тому +3

    Большое спасибо за видео!!! Даже не знаю, как еще выразить благодарность. Дело в том, что я джун в компании, устроился совсем недавно, и темы ваших роликов как раз совпадают с изучаемыми мной темами.

  • @torpid0
    @torpid0 3 роки тому

    Чрезвычайно содержательное видео! Все подробно и без ошибок, эканий и бэканий. За таймкоды в описании отдельное спасибо!

  • @dmitrymukhin9458
    @dmitrymukhin9458 5 років тому +6

    Спасибо большое!! Даешь очень просто приложения по Spring Cloud!! =))

  • @D.P._
    @D.P._ 5 років тому +2

    Как-то пропустил) Крутой видос, и реально полезный! Исправляюсь: Like as usual!

  • @user-arbuzer1133
    @user-arbuzer1133 4 роки тому

    Спасибо БОЛЬШОЕ за видео! Пока что не понятно как работает эта тёмная магия)) Нужно ещё погонять этот ролик speed 0,1))

  • @faniskhalikov9736
    @faniskhalikov9736 2 роки тому

    Круть! Концентрация полезности зашкаливает )) При этом доступность и изложение инфы на высоте

  • @eugenekotsaba6512
    @eugenekotsaba6512 5 років тому +5

    это самое содержательное видео на ютубе , лайк)

  • @nsandrus
    @nsandrus 4 роки тому +4

    Отличная демонстрация Stream API, с удовольствием посмотрел бы еще по Optional

  • @МихаилКузнецов-м1э
    @МихаилКузнецов-м1э 5 років тому +3

    одна из самых актуальных тем, спасибо!

  • @user-ce3lm7sz1k
    @user-ce3lm7sz1k 5 років тому +6

    супер! мне (как тупому) ничего не понятно, но кажется что объяснение хорошее!)

    • @letsCodeDru
      @letsCodeDru  5 років тому +3

      Это норма. Я учебные видосы и статьи тоже по несколько раз пересматриваю/перечитываю

    • @russia_winner
      @russia_winner 3 роки тому +1

      @@letsCodeDru дорогу осилит идущий

  • @ЕгорАнтонов-и4ъ
    @ЕгорАнтонов-и4ъ 5 років тому

    Прикольная штука. Недавно узнал об akka-streams, по документации можно более наглядно посмотреть и понять для чего они вообще нужны. +back pressure

  • @Sergey111111
    @Sergey111111 5 років тому +7

    Очень круто, кратко и емко!

  • @ЕвгенийАфанасьев-ж8э

    Сначала было тяжело понимать, потом скорость 0,75 поставил и класс. Осталось заставить себя перейти с циклов на стримы, чтобы практикой это все закрепить

    • @pvtitov
      @pvtitov 4 роки тому

      codewars например хорошо помогает

    • @pvtitov
      @pvtitov 4 роки тому +2

      спасибо за идею про скорость! реально нормально стало! автор на спидах)))

    • @АнатолийТ-д6л
      @АнатолийТ-д6л 2 роки тому +1

      Я как изучил стримы тоже везде их лепил, а оказывается, как отметил автор, только в больших коллекциях получается выигрыш в производительности.

    • @onizuka_cs2
      @onizuka_cs2 2 роки тому

      @@АнатолийТ-д6л речь шла о parallel stream.

  • @mr_robot_20_04
    @mr_robot_20_04 5 років тому +1

    Годные и информативные видосы, спасибо за контент! Было бы здорово увидеть туториал по Spring security в вашем исполнении) Желательно более углубленно и информативно нежели уже есть на канале

  • @Qwertyuiopasdfghjklzxcvbnm4
    @Qwertyuiopasdfghjklzxcvbnm4 3 роки тому

    Очень качественное, информативное объяснение!

  • @mirnijalexey2765
    @mirnijalexey2765 3 роки тому +1

    2:12 у меня комбинация Ctrl+Alt+Shift почему то не работает на Винде, может какая то другая комбинация по умолчанию?

  • @way2play980
    @way2play980 9 місяців тому

    Спасибо, очень интересно!

  • @romanmotovilov129
    @romanmotovilov129 5 років тому +1

    Спасибо. Отличный урок!

  • @kunnilinux
    @kunnilinux 5 років тому +1

    Что можете сказать по поводу производительности стримов в сравнении со старыми подходами? Например, что быстрее, конвертировать коллекцию доменов в коллекцию ДТО через фор-ич или через стрим апи? В чем сок использования для простых операций? Только лишь в читабельном и компактном коде?

    • @kunnilinux
      @kunnilinux 5 років тому +1

      я сразу поясню, я новичок и я как раз из тех "староверов", которые все до сих пор делают в циклах, ибо так научился изначально, а чтобы постичь новое, надо сперва понять преимущества нового над старым

    • @maksiml6298
      @maksiml6298 5 років тому

      Компактность. Big O не зависит что используется, и там и там возможно медленная скорость.

    • @h00per12
      @h00per12 5 років тому +1

      Вообще не факт что стримы медленнее, может там под капотом jvm как-то оптимизирует это дело. И даже если и медленнее, то вопрос только в том что тебе нужно читабельный код или производительность. По дефолту на первом месте читабельный код, а декларативный подход(функциональщина, стримы) проще читать нежели императивный(циклы). Очень узкий кейс должен быть, когда ты не юзаешь стримы ради производительности, возможно, тебе тогда вообще не стоит писать на java, если тебе нужна производительность, посмотри в сторону С++, например.

    • @andrewcool482
      @andrewcool482 5 років тому

      blog.jooq.org/2015/12/08/3-reasons-why-you-shouldnt-replace-your-for-loops-by-stream-foreach/

  • @taraskutselya1326
    @taraskutselya1326 5 років тому +6

    То что надо! Лайк, подписка, колокольчик (вру... давно подписан 😀)

  • @iryna6389
    @iryna6389 5 років тому +1

    Привет, огромное спасибо за видео.

  • @sander02rubenkov62
    @sander02rubenkov62 4 роки тому +1

    2:15
    Ребят, обертки только для double,long,int - и все!
    Никаких "boolean и так далее" - нет.

  • @Antonio-b6f5b
    @Antonio-b6f5b 4 роки тому +1

    Просто здорово. Спасибо за труд.

  • @vp9878
    @vp9878 4 роки тому +1

    Спасибо за урок!

  • @gorsky6382
    @gorsky6382 4 роки тому

    Вы конечно извините, но это лайк и подписка..

  • @andrewaliokhin8306
    @andrewaliokhin8306 3 роки тому

    Оче6нь информативною. Спасибо

  • @ZhivaPR
    @ZhivaPR 5 років тому +2

    Хорошая подача, спасибо.

  • @margulankurmangaly9150
    @margulankurmangaly9150 5 років тому +2

    По твоим видосам устроился на работу)))))))) Спасибо за годноту

    • @letsCodeDru
      @letsCodeDru  5 років тому +9

      Рад, что имею к этому отношение. Проставляйся с первой ЗП, реквизиты под каждым видео 😅

  • @dmitriy5248
    @dmitriy5248 4 роки тому +1

    Шикарное видео! Спасибо

  • @denwerxampp4035
    @denwerxampp4035 2 роки тому

    ребята, подскажите сочетание клавиш на 9:34 )

  • @tomozi1
    @tomozi1 5 років тому +1

    Спасибо за превосходные видео!

  • @levvv1000
    @levvv1000 5 років тому +1

    Видео хорошее, только ваш обход списка работает, если самая корневая нода (у которой нет родителя) находится под первым индексом в списке, иначе она будет будет рекурсивно передаваться как аргумент чайлд департамента и дерево не сможет создаться, так как у нескольких департаментов не будет родителей

  • @pavelminsk
    @pavelminsk 2 роки тому

    Очень круто! Спасибо!

  • @ievgengrozenok1803
    @ievgengrozenok1803 5 років тому +1

    Спасибо! Все было понятно

  • @moovestone
    @moovestone 7 місяців тому

    спасибо. только это походу для тех, кто уже работает разработчиком, а не изучает)

  • @withotsoul7252
    @withotsoul7252 2 роки тому

    хороший урок!

  • @artyomgrigorev2186
    @artyomgrigorev2186 2 роки тому

    Например, моднейшее написание стримов, например 😃

  • @AlexZvukov
    @AlexZvukov 4 роки тому +1

    10:50 Пример с reduce() и рекурсией пришлось пересматривать несколько раз пока усвоил. Это нормально? :D

    • @letsCodeDru
      @letsCodeDru  4 роки тому +3

      Чтобы понять рекурсию, нужно понять рекурсию

  • @Peter-jp9zw
    @Peter-jp9zw 5 років тому +2

    ты классный, спасибо тебе)

  • @ИгорьБирт-я2щ
    @ИгорьБирт-я2щ 2 роки тому

    Голова задымилась😁

    • @ИгорьБирт-я2щ
      @ИгорьБирт-я2щ 2 роки тому

      Спасибо автор! Огромная работа проделана и всего в 27 минут вложили! Искусство!

  • @shinshin7253
    @shinshin7253 Рік тому

    Годно! Спасибо

  • @shtan5583
    @shtan5583 5 років тому +1

    Стримы топ, но пользоваться ими без документации я почему-то не могу. Куча похожих методов и подводных камней.

  • @p.polunin
    @p.polunin 3 місяці тому

    Разжевал и в рот положил! Спасибо! Вкусно!

  • @ВадимКопиця-д8ц
    @ВадимКопиця-д8ц 5 років тому +2

    Спасибо)

  • @sagirovalinda9743
    @sagirovalinda9743 5 років тому

    Я может немного туплю, но как так получается что вы просто пишете вызов стрима(или любого метода), а идея сама дополняет тем, что кладет его в переменную с нужным обозначением вида? Пока я не объявлю новую переменную, я не могу вызвать Stream.of или что-то другое

    • @xWarTeX
      @xWarTeX 4 роки тому

      ctrl+alt+v и идея сама засунет все в переменную если это возможно

  • @K4sik
    @K4sik 5 років тому

    Видео очень полезное, но будут уроки по Spring Boot с использованием JavaScript и framework Ajax, JQuery ......?

  • @alexandergrankin8829
    @alexandergrankin8829 4 роки тому +2

    Пушка!

  • @mercurial-flower
    @mercurial-flower 2 роки тому

    Класс!

  • @romantsyupryk3009
    @romantsyupryk3009 5 років тому

    Thank you so much.

  • @MaksymVashchenko
    @MaksymVashchenko 5 років тому +6

    Раз ты стримы затронул, может и лямды уже добьешь туда сразу?)

    • @letsCodeDru
      @letsCodeDru  5 років тому +8

      Угу. Запланировано ужо.

    • @alexanderkadatskiy7986
      @alexanderkadatskiy7986 5 років тому

      @@letsCodeDru Спасибо за супер-видос! А лямбды выйдут? :)

  • @Cucumber83
    @Cucumber83 5 років тому

    что это за тема в идеи?

    • @letsCodeDru
      @letsCodeDru  5 років тому

      Darcula

    • @Cucumber83
      @Cucumber83 5 років тому

      letsCode спасибо! странно, она выглядит совсем не так как у меня ( наверное от ОС зависит

  • @almasabdrazak5089
    @almasabdrazak5089 5 років тому +2

    Стримы от io ресурсов , таких как файл, нужно явно закрывать или оборачивать в try with resources

    • @GameForYouOnline
      @GameForYouOnline 2 роки тому

      или аналогичной структуре

  • @pvtitov
    @pvtitov 4 роки тому +7

    боже чтоже так быстро то у меня сейчас голова взорвется, можно тоже самое но 10 видео продолжительностью как это? XD

    • @koKS.1k
      @koKS.1k 3 роки тому +3

      Скорость воспроизведения х0,75 и всё четко (=

  • @ВячеславЗайцев-в9и

    like!

  • @batonsudby
    @batonsudby 3 роки тому

    😀

  • @b213videoz
    @b213videoz 6 місяців тому

    Hipster stuff

  • @sergeyzakharchenko1706
    @sergeyzakharchenko1706 4 роки тому +1

    Джава, а не ява!!!

  • @Teramozg
    @Teramozg Рік тому

    Скорость понимания видео рассчитана как минимум на мидла

  • @Youtooobo
    @Youtooobo 2 роки тому

    Классно. Но ничего не понятно )

  • @ZeBatua
    @ZeBatua 9 місяців тому

    Видео для тех, кто уже что-то знает про стримы. Я вообще ничего не понял. Куда то летит, миллион всего объясняет. 0 шансов запомнить и тем более понять

  • @oleksa537
    @oleksa537 2 роки тому

    ява - это мотоцикол. А язык программирования - это джава.

  • @Renzo_Asterio
    @Renzo_Asterio Рік тому

    2430

  • @gennadyshevchenko7940
    @gennadyshevchenko7940 2 роки тому

    Самого интересного нет.

  • @dv5686
    @dv5686 4 роки тому

    Какая нафиг Ява?))) ничего что создатели языка называют ее джава?)))

    • @kolob204
      @kolob204 4 роки тому

      Еще за запятые его поругайте : ай яй яй, дядя Андрей, такой бАльшой и усатый, а все "ошибаешся"

    • @dv5686
      @dv5686 4 роки тому

      Иван Иванов спасибо, надо щемить лоха и за запястья

    • @kolob204
      @kolob204 4 роки тому

      @@dv5686 как то странно слышать спасибо, после сарказма.

    • @dv5686
      @dv5686 4 роки тому

      Иван Иванов сарказм, который мы заслужили:)))

  • @Youtooobo
    @Youtooobo Рік тому

    Ужасное объяснение.