JavaStart
938 subscribers
878 photos
26 videos
588 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
Stream API в Java. Часть 8.

Подробнее изучите метод .collect(). Он позволяет гибко управлять преобразованием значений в разные типы: коллекции, массивы, map. Делается это благодаря статистическим методам Collectors.

Вот несколько интересных примеров:

toList — стрим приводится к списку;

toCollection — получаем коллекцию;

toSet — получаем множество;

toConcurrentMap, toMap — если нужен map;

summingInt, summingDouble, summingLong — если требуется получить сумму чисел;

averagingInt, averagingDouble, averagingLong — если хотите вернуть среднее значение;

groupingBy — если необходимо разбить коллекцию на части.

Это не все статистические методы Collectors. Другие возможности с подробным описанием смотрите в документации. Помимо тех Collectors, которые определены в документации, можно использовать собственноручно созданные, кастомные варианты)

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Stream API в Java. Часть 9.

Давайте поиграемся с методами .min() и .max().

Пусть у нас будет коллекция строк вида Arrays.asList("f10", "f15", "f2", "f4").
Нужно найти самый маленький элемент:

collection.stream().min(String::compareTo).get()
// f2

Метод compareTo() – это метод, который есть у каждого объекта типа String.

С максимальным значением тоже все очень просто:

collection.stream().max(String::compareTo).get()
// f15

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Stream API в Java. Часть 10.

Посмотрим несколько примеров работы сортирующих методов Stream API.

Используем ту же коллекцию строк, что и выше —
Stream.of("f10", "f15", "f2", "f4", "f4").

Единственное отличие — теперь в нем появился дубликат.

Первая задача — отсортировать строки в алфавитном порядке и добавить их в массив:

collection.stream().sorted().collect(Collectors.toList());
// [f2, f4, f4, f10, f15]

А вот чуть более интересное задание — нужно выполнить сортировку в обратном алфавитному порядке и удалить дубликаты. В массиве должны оказаться только уникальные значения:

collection.stream().sorted(String::compareTo).distinct().collect(Collectors.toList());

Здесь мы используем не только .sorted() для сортировки, но и метод .distinct() для удаления неуникальных значений при обработке коллекции.

Задачи по сортировке стримов в Java часто встречаются на собеседованиях не только на позицию Junior разработчиков, но даже и на позицию Middle!

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Что напечатает код?

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ к задаче про сравнение строк:

Первое, что нужно отметить, что тут сравниваются не значения строк, а ссылки на строки. Поэтому IDE подчёркивает все равенства и предлагает правильный вариант сравнения значений строк через “equals”.

s1 и s2 это один и тот же объект, так как в Java есть пул строк, и для s2 не создается новый объект, так как в пуле уже есть строка с таким же значением.
А вот s3 создаётся через new и в пул строк не попадает. Поэтому s1 и s3 - это разные объекты, поэтому сравнение вернёт false.
s4 будет гарантированно из пула, так как вызван метод intern.
s5 работает аналогично s2.

Выводы:
1) Сравнивая объекты через == , можно не всегда получить то, что ожидаешь, поэтому лучше этого не делать и использовать метод equals. Сравнивая через ==, вы должны знать что делаете.
2) Если IDE подчёркивает код, стоит обратить на это внимание, скорее всего у вас проблемы в коде.
3) Метод intern() перед созданием объекта String смотрит, есть ли этот объект в пуле стрингов и возвращает его. Иначе создается новый объект в пуле.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Stream API в Java. Часть 11.

Stream в Java дает разработчикам удобные инструменты для обработки данных в коллекциях.

Методы позволяют проще обрабатывать объекты и писать меньше кода. Это так называемый “синтаксический сахар”.

Чтобы научиться работать эффективно с Java Stream API рекомендую просто практиковаться и в скором времени это станет для вас легко!

Раздел Stream API в Java несомненно встречается на собеседованиях на позиции Java Junior и Middle разработчиков. Поэтому разбираться в этом разделе нужно.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Каким образом данные связываются в реляционной базе данных?
Anonymous Quiz
4%
По совпадению идентификаторов
2%
По алфавиту
71%
По ключу–внешнему ключу
21%
По ID
2%
Посмотреть ответ
Какая команда используется для добавления изменений в индекс Git?
Anonymous Quiz
28%
git commit
55%
git add
9%
git push
2%
git pull
5%
Посмотреть ответ
Please open Telegram to view this post
VIEW IN TELEGRAM
SQL, базы данных. Часть 1.

Поговорим о SQL и базах данных, это одна из самых важных областей в мире backend разработки, независимо на каком языке написан проект (java и др.). Вопросы по SQL и базам данных всегда задают на собеседованиях на Java разработчика, причем как синьорам, там и джунам!

База данных (БД) — это организованная структура, которая предназначается для хранения, обработки и изменения большого количества информации.

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

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

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

Зачем нужны базы данных?

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

Перед БД ставятся вызовы, позволяющие повысить их производительность. Вот некоторые из них:

– оперирование возросшим объемом данных;
– обеспечение безопасности информации;
– удовлетворение потребностей компаний;
– обслуживание БД.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой будет результат выполнения данного кода?

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
SQL, базы данных. Часть 2.

Отличие баз данных от электронных таблиц.

Как и электронные таблицы вроде Microsoft Excel или Google Таблиц, базы данных предлагают пользователям удобные способы хранения информации.

Но отличия между ними имеются и заключаются они:

– в способе хранения и обработки;
– в объеме хранения;
– в полномочиях доступа к данным.

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

Базы данных предназначены для хранения огромных объемов информации и позволяют пользователям получать доступ к нужным данным за доли секунд!

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM