Лекция 9. Stream API Терминальные операции и коллекторы

  Рет қаралды 14,148

Computer Science Center

Computer Science Center

2 жыл бұрын

Еженедельные открытые лекционные занятия курса "Программирование на Java". Знакомство с языком с самых азов, но глубоко. Преподаватель - Тагир Валеев. Подробнее о курсе: compscicenter.ru/courses/java...
Все лекции курса по порядку: • Программирование на Ja...
Подписывайтесь на наш канал: / compscicent. .
Подробнее о поступлении в CS центр: compscicenter.ru/application/
Следите за новостями и анонсами:
compscicenter
t.me/compscicenter_ru
Поддержать CS центр:
compscicenter.ru/fund/

Пікірлер: 17
@ansarozden5767
@ansarozden5767 Жыл бұрын
Спасибо большое Тагиру и учебному центру за то, что вот так бескорыстно предоставляете доступ к своим лекциям!
@John_Smith_Java
@John_Smith_Java Жыл бұрын
Коллекторы - восхитительны! Тагир - великолепен!
@user-lv5hi7kx9j
@user-lv5hi7kx9j Жыл бұрын
Очень познавательно. Чем больше смотрю про Stream API, тем больше нового узнаю. Полезно знать про реализацию в разных версиях Java.
@John_Smith_Java
@John_Smith_Java Жыл бұрын
7:25 "в этом месте мы начинаем спускать в ад" - в голосину😂😂😂
@virus0936
@virus0936 Жыл бұрын
Тоже проорал)
@oldjohn1503
@oldjohn1503 Жыл бұрын
Спасибо, Тагир! Разжевал)
@PatBatTB
@PatBatTB Жыл бұрын
Спасибо за курс! Думаю было бы хорошим тоном ссылки из видео дублировать в описании. ))
@John_Smith_Java
@John_Smith_Java Жыл бұрын
Тагир крутой.
@quaddamage7765
@quaddamage7765 Жыл бұрын
Тагир лучший!
@ShadowKevil
@ShadowKevil 5 ай бұрын
В лекции почти не коснулись параллельных стримов. Почему не стоит использовать параллельные стримы по умолчанию?
@user-wf8uh2gn1q
@user-wf8uh2gn1q 11 ай бұрын
на втором часе мозг закипел... тяжеловато.
@user-jj2eu6yx6r
@user-jj2eu6yx6r Жыл бұрын
кто - нибудь решил упражнение с 54:25 ?
@anastasiya_pesto
@anastasiya_pesto Жыл бұрын
Я пытаюсь сижу, пока не получилось. А ты решил?
@user-jj2eu6yx6r
@user-jj2eu6yx6r Жыл бұрын
@@anastasiya_pesto неа , просто , кажется , как будто и невозможно
@DenisReto
@DenisReto Жыл бұрын
Без промежуточного итога не получилось решить, только если добавить промежуточный класс public record UserDepartment(User user, Department department) { }; То решение такое: private Map getUserChiefs(Company company) { Stream userDepartments = company.departments .flatMap(d -> d.users.map((u -> new UserDepartment(u, d)))); return userDepartments .collect(groupingBy(ud -> ud.user, mapping(ud -> ud.department.chief, toList()) )); }
@DenisReto
@DenisReto Жыл бұрын
ну и такой тест прогнал для наглядности @Test public void test() { //map key - is user - worker //map - value list of chiefs User denis = new User("Denis"); User jack = new User("Jack"); User john = new User("John"); User bob = new User("Bob"); User ivan = new User("Ivan"); Department itDepartment = new Department("IT", john, Stream.of(denis, jack, bob)); Department accountingDepartment = new Department("Accounting", ivan, Stream.of(jack, bob)); Company megaIndustrials = new Company(Stream.of(itDepartment, accountingDepartment)); Map userChiefs = getUserChiefs(megaIndustrials); assertTrue(userChiefs.containsKey(jack)); assertEquals(2, userChiefs.get(jack).size()); assertEquals(2, userChiefs.get(bob).size()); assertTrue(userChiefs.get(jack).containsAll(List.of(john, ivan))); assertTrue(userChiefs.get(bob).containsAll(List.of(john, ivan))); assertEquals(1, userChiefs.get(denis).size()); assertTrue(userChiefs.get(denis).contains(john)); }
@dotherap
@dotherap 11 ай бұрын
@@MaksimWojtk я вот так сделал через группировку: company.departments().stream() .flatMap(d -> d.users() .map(u -> new AbstractMap.SimpleEntry(u, d.chief()) {})) .collect(groupingBy(AbstractMap.SimpleEntry::getKey, mapping(AbstractMap.SimpleEntry::getValue, toList()))) Но идею с парой использовал вашу. Не знаю, возможно ли как-то проще.
Лекция 10. Ввод-вывод
1:41:56
Computer Science Center
Рет қаралды 11 М.
Лекция 9. async / await (Программирование на Python)
1:39:22
Computer Science Center
Рет қаралды 55 М.
Me: Don't cross there's cars coming
00:16
LOL
Рет қаралды 11 МЛН
I Can't Believe We Did This...
00:38
Stokes Twins
Рет қаралды 70 МЛН
ОСКАР ИСПОРТИЛ ДЖОНИ ЖИЗНЬ 😢 @lenta_com
01:01
Описание бизнес-процессов по шагам на примерах
17:43
Системный Бизнес
Рет қаралды 3,7 М.
Stream API. Java. Максимально простым языком.
21:36
Игорь Мешалкин
Рет қаралды 28 М.
Сергей Куксенко - Stream API, часть 1
1:13:18
JPoint, Joker и JUG ru
Рет қаралды 82 М.
Me: Don't cross there's cars coming
00:16
LOL
Рет қаралды 11 МЛН