Что такое 🤓
Ответ:
Records (Java 14 preview, финал в Java 16) — это неизменяемые (immutable) классы-носители данных.
Объявляются как record Point(int x, int y) {}.
Компилятор автоматически генерирует: конструктор, геттеры (с теми же именами), equals(), hashCode(), toString().
Можно добавить компактный конструктор для валидации. Records не могут наследоваться, но могут реализовывать интерфейсы.
Идеальны для DTO, value objects, кортежей. Упрощают создание классов-данных, уменьшая шаблонный код.
#собеседование
record (Record-классы)? Ответ:
Records
Объявляются как record Point(int x, int y) {}.
Компилятор автоматически генерирует: конструктор, геттеры (с теми же именами), equals(), hashCode(), toString().
Можно добавить компактный конструктор для валидации. Records не могут наследоваться, но могут реализовывать интерфейсы.
Идеальны для DTO, value objects, кортежей. Упрощают создание классов-данных, уменьшая шаблонный код.
#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
История технологии сегодня — 26 июня
ℹ️ Кто родился в этот день
Уи́льям То́мсон, лорд Ке́львин (Ке́лвин) (англ. William Thomson, 1st Baron Kelvin; 26 июня 1824 года, Белфаст, Ирландия — 17 декабря 1907 года, Ларгс, Шотландия) — британский физик, механик и инженер. Известен своими работами в области термодинамики, механики, электродинамики.
Роберт Колман Ри́чардсон (англ. Robert Coleman Richardson; 26 июня 1937, Вашингтон — 19 февраля 2013) — американский физик, лауреат Нобелевской премии по физике 1996 года, совместно с Дугласом Ошеровым и Дэвидом Ли, «за открытие сверхтекучести гелия-3».
🌐 Знаковые события
1954 — произведён энергетический пуск первой в мире атомной электростанции.
1997 — основана антивирусная компания «Лаборатория Касперского».
#Biography #Birth_Date #Events #26июня
Уи́льям То́мсон, лорд Ке́львин (Ке́лвин) (англ. William Thomson, 1st Baron Kelvin; 26 июня 1824 года, Белфаст, Ирландия — 17 декабря 1907 года, Ларгс, Шотландия) — британский физик, механик и инженер. Известен своими работами в области термодинамики, механики, электродинамики.
Роберт Колман Ри́чардсон (англ. Robert Coleman Richardson; 26 июня 1937, Вашингтон — 19 февраля 2013) — американский физик, лауреат Нобелевской премии по физике 1996 года, совместно с Дугласом Ошеровым и Дэвидом Ли, «за открытие сверхтекучести гелия-3».
1954 — произведён энергетический пуск первой в мире атомной электростанции.
1997 — основана антивирусная компания «Лаборатория Касперского».
#Biography #Birth_Date #Events #26июня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
[Совет по Java #054]
Тема:
Проблема: Метод
При обработке упорядоченных стримов (например, из
Решение: Используйте перегруженную версию
Объяснение:
Передавая
#Java #советы
Тема:
Collectors.groupingBy сохраняет порядок, если передать LinkedHashMap::new в качестве supplier.Проблема: Метод
Collectors.groupingBy(Function classifier) по умолчанию использует HashMap для накопления результатов, который не гарантирует никакого порядка ключей. При обработке упорядоченных стримов (например, из
List с определенной последовательностью) порядок ключей в результирующей Map может быть произвольным, что нарушает ожидания разработчика и может привести к непредсказуемому поведению при последующей итерации. Это особенно критично, если порядок группировки важен для бизнес-логики (например, группировка по датам в хронологическом порядке). Даже если стрим упорядочен, HashMap не сохраняет этот порядок, так как его структура основана на хэш-кодах.Решение: Используйте перегруженную версию
Collectors.groupingBy(classifier, supplier, downstream), передавая LinkedHashMap::new в качестве supplier.
LinkedHashMap сохраняет порядок вставки ключей, а порядок вставки при группировке соответствует порядку, в котором ключи впервые встречаются в стриме (для упорядоченных стримов). Если нужен другой порядок (например, сортировка по ключу), используйте TreeMap::new и groupingBy с сортировкой.import java.util.*;
import java.util.stream.*;
public class GroupingByOrder {
public static void main(String[] args) {
List<String> words = Arrays.asList("apple", "banana", "apple", "cherry", "banana");
//По умолчанию: HashMap — порядок не гарантирован
Map<String, Long> defaultMap = words.stream()
.collect(Collectors.groupingBy(
s -> s,
Collectors.counting()
));
System.out.println("Default (HashMap): " + defaultMap);
// Может вывести {banana=2, cherry=1, apple=2} (порядок зависит от хэшей)
//Сохранение порядка вставки (LinkedHashMap)
Map<String, Long> orderedMap = words.stream()
.collect(Collectors.groupingBy(
s -> s,
LinkedHashMap::new, // supplier для сохранения порядка
Collectors.counting()
));
System.out.println("Ordered (LinkedHashMap): " + orderedMap);
// Порядок: apple (первое вхождение), banana, cherry
//Для сортировки по ключу используем TreeMap
Map<String, Long> sortedMap = words.stream()
.collect(Collectors.groupingBy(
s -> s,
TreeMap::new,
Collectors.counting()
));
System.out.println("Sorted by key: " + sortedMap); // apple, banana, cherry
// Для группировки с downstream коллектором, сохраняющим порядок элементов
Map<String, List<String>> groupedList = words.stream()
.collect(Collectors.groupingBy(
s -> s,
LinkedHashMap::new,
Collectors.toList() // сохраняет порядок элементов внутри группы
));
System.out.println("Grouped with list order: " + groupedList);
// {apple=[apple, apple], banana=[banana, banana], cherry=[cherry]}
}
}
Объяснение:
Collectors.groupingBy имеет три перегрузки: первая использует HashMap и ArrayList как downstream; вторая позволяет задать конкретную фабрику для результирующей Map; третья также позволяет задать downstream-коллектор. Передавая
LinkedHashMap::new, мы явно указываем, что карта должна сохранять порядок вставки. Порядок вставки определяется порядком появления ключей в стриме. Для упорядоченных стримов (полученных из List, SortedSet или после sorted()) это дает предсказуемый результат. Для параллельных стримов сохранение порядка не гарантируется, даже с LinkedHashMap, потому что порядок обработки недетерминирован. Также важно, что LinkedHashMap немного дороже по памяти, чем HashMap, но эта цена оправдана, когда порядок важен.#Java #советы
👍3
Что выведет код?
#Tasks
import java.util.*;
import java.util.stream.*;
public class Task260626 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);
Map<Integer, List<Integer>> map = numbers.stream()
.collect(Collectors.groupingBy(
n -> n % 2,
LinkedHashMap::new,
Collectors.toList()
));
System.out.println(map.keySet());
}
}
#Tasks
👍2
👍3
Что такое pattern matching для 🤓
Ответ:
Начиная с Java 16, instanceof может объявлять переменную одновременно с проверкой: if (obj instanceof String s) { ... }.
Если объект является экземпляром String, переменная s инициализируется автоматически, и её можно использовать в блоке.
Это сокращает код и устраняет необходимость явного приведения.
В Java 17+ pattern matching расширен на switch. Упрощает работу с полиморфными структурами, делая код более безопасным (переменная недоступна вне области).
#собеседование
instanceof? Ответ:
Если объект является экземпляром String, переменная s инициализируется автоматически, и её можно использовать в блоке.
Это сокращает код и устраняет необходимость явного приведения.
В Java 17+ pattern matching расширен на switch. Упрощает работу с полиморфными структурами, делая код более безопасным (переменная недоступна вне области).
#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
История технологии сегодня — 27 июня
ℹ️ Кто родился в этот день
Влади́мир Миха́йлович Петляко́в (15 (27) июня 1891, село Самбек, область Войска Донского, Российская империя — 12 января 1942, деревня Мамешево, Сергачский район, Горьковская область, РСФСР, СССР) — советский авиаконструктор.
Известные модели самолётов
Тяжелый бомбардировщик ТБ-3 (АНТ-6)
Пассажирский самолёт АНТ-14 «Правда»
Тяжелый бомбардировщик ТБ-4 (АНТ-16)
Агитационный самолёт АНТ-20 «Максим Горький»
Тяжёлый бомбардировщик дальнего действия Пе-8 (АНТ-42, ТБ-7)
Высотный истребитель ВИ-100
Пикирующий бомбардировщик Пе-2
Высотный истребитель Пе-3
🌐 Знаковые события
1931 — в США изобретатель Игорь Сикорский подал патентную заявку на вариант одновинтового вертолёта с небольшим рулевым винтом.
#Biography #Birth_Date #Events #27июня
Влади́мир Миха́йлович Петляко́в (15 (27) июня 1891, село Самбек, область Войска Донского, Российская империя — 12 января 1942, деревня Мамешево, Сергачский район, Горьковская область, РСФСР, СССР) — советский авиаконструктор.
Известные модели самолётов
Тяжелый бомбардировщик ТБ-3 (АНТ-6)
Пассажирский самолёт АНТ-14 «Правда»
Тяжелый бомбардировщик ТБ-4 (АНТ-16)
Агитационный самолёт АНТ-20 «Максим Горький»
Тяжёлый бомбардировщик дальнего действия Пе-8 (АНТ-42, ТБ-7)
Высотный истребитель ВИ-100
Пикирующий бомбардировщик Пе-2
Высотный истребитель Пе-3
1931 — в США изобретатель Игорь Сикорский подал патентную заявку на вариант одновинтового вертолёта с небольшим рулевым винтом.
#Biography #Birth_Date #Events #27июня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Помоему что-то много я библиотек добавил....😂
🤣4🤯3
История технологии сегодня — 28 июня
ℹ️ Кто родился в этот день
И́лон Рив Маск (англ. Elon Reeve Musk, МФА: [ˈiːlɒn 'mʌsk]; род. 28 июня 1971, Претория, Гаутенг, ЮАР) — американский и южноафриканский предприниматель, инженер и долларовый триллионер, государственный, политический и общественный деятель ультраправых и либертарианских взглядов. Основатель, генеральный директор и главный инженер компании SpaceX; крупнейший акционер, член совета директоров и генеральный директор компании Tesla; основатель The Boring Company; соучредитель Neuralink и OpenAI; генеральный директор XAI (объединяет xAI и социальную сеть X).
Кла́ус фон Кли́тцинг (нем. Klaus von Klitzing; род. 28 июня 1943, Шрода, оккупированная Германией часть Польши) — немецкий физик, лауреат Нобелевской премии по физике 1985. Открыл целочисленный квантовый эффект Холла, состоящий в квантовании Холловского сопротивления двумерного электронного газа в сильных магнитных полях и при низких температурах.
Мари́я Гёпперт-Ма́йер (нем. Maria Göppert-Mayer; 28 июня 1906, Катовице, Пруссия, Германская империя — 20 февраля 1972, Сан-Диего, Калифорния) — немецкий и американский учёный, физик-ядерщик, лауреат Нобелевской премии по физике (половина премии за 1963 год, совместно с Хансом Йенсеном, «за открытия, касающиеся оболочечной структуры ядра»; вторую половину премии получил Юджин Вигнер «за вклад в теорию атомного ядра и элементарных частиц, особенно с помощью открытия и приложения фундаментальных принципов симметрии»).
🌐 Знаковые события
1712 — в Санкт-Петербурге в присутствии Петра I на воду спущен первый линейный корабль, построенный в Главном адмиралтействе для Балтийского флота.
#Biography #Birth_Date #Events #28июня
И́лон Рив Маск (англ. Elon Reeve Musk, МФА: [ˈiːlɒn 'mʌsk]; род. 28 июня 1971, Претория, Гаутенг, ЮАР) — американский и южноафриканский предприниматель, инженер и долларовый триллионер, государственный, политический и общественный деятель ультраправых и либертарианских взглядов. Основатель, генеральный директор и главный инженер компании SpaceX; крупнейший акционер, член совета директоров и генеральный директор компании Tesla; основатель The Boring Company; соучредитель Neuralink и OpenAI; генеральный директор XAI (объединяет xAI и социальную сеть X).
Кла́ус фон Кли́тцинг (нем. Klaus von Klitzing; род. 28 июня 1943, Шрода, оккупированная Германией часть Польши) — немецкий физик, лауреат Нобелевской премии по физике 1985. Открыл целочисленный квантовый эффект Холла, состоящий в квантовании Холловского сопротивления двумерного электронного газа в сильных магнитных полях и при низких температурах.
Мари́я Гёпперт-Ма́йер (нем. Maria Göppert-Mayer; 28 июня 1906, Катовице, Пруссия, Германская империя — 20 февраля 1972, Сан-Диего, Калифорния) — немецкий и американский учёный, физик-ядерщик, лауреат Нобелевской премии по физике (половина премии за 1963 год, совместно с Хансом Йенсеном, «за открытия, касающиеся оболочечной структуры ядра»; вторую половину премии получил Юджин Вигнер «за вклад в теорию атомного ядра и элементарных частиц, особенно с помощью открытия и приложения фундаментальных принципов симметрии»).
1712 — в Санкт-Петербурге в присутствии Петра I на воду спущен первый линейный корабль, построенный в Главном адмиралтействе для Балтийского флота.
#Biography #Birth_Date #Events #28июня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Виды Телецкого озера
🔥7