Skip to content

Commit b99bb12

Browse files
authored
Merge pull request #150 from javaevolved/copilot/add-translation-to-russian
Add Russian (ru) translation
2 parents 50a859f + 4fcc4d5 commit b99bb12

File tree

115 files changed

+2155
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+2155
-1
lines changed

html-generators/locales.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ ko=🇰🇷 한국어
1111
bn=🇧🇩 বাংলা
1212
it=🇮🇹 Italiano
1313
pl=🇵🇱 Polski
14-
tr=🇹🇷 Türkçe
14+
tr=🇹🇷 Türkçe
15+
ru=🇷🇺 Русский
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: "Collectors.teeing()"
2+
oldApproach: Два прохода
3+
modernApproach: "teeing()"
4+
summary: Вычисление двух агрегаций за один проход по потоку.
5+
explanation: "Collectors.teeing() направляет каждый элемент в два дочерних Collector\
6+
\ и объединяет результаты. Это позволяет избежать двукратного обхода данных или\
7+
\ использования изменяемого аккумулятора."
8+
whyModernWins:
9+
- icon: ""
10+
title: Один проход
11+
desc: Обработать поток один раз вместо двух.
12+
- icon: "🧩"
13+
title: Комбинируемый
14+
desc: Соединить два произвольных Collector с функцией слияния.
15+
- icon: "🔒"
16+
title: Неизменяемый результат
17+
desc: Сразу объединить в Record или Value-Object.
18+
support:
19+
description: Широко доступно начиная с JDK 12 (март 2019)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Неизменяемое копирование коллекций
2+
oldApproach: Ручное копирование + обёртка
3+
modernApproach: "List.copyOf()"
4+
summary: Создание неизменяемой копии любой коллекции одним вызовом.
5+
explanation: "List.copyOf(), Set.copyOf() и Map.copyOf() создают неизменяемые снимки\
6+
\ существующих коллекций. Если источник уже является неизменяемой коллекцией,\
7+
\ копия не создаётся."
8+
whyModernWins:
9+
- icon: ""
10+
title: Умное копирование
11+
desc: Копирование пропускается, если источник уже неизменяем.
12+
- icon: "📏"
13+
title: Один вызов
14+
desc: Без ручного создания ArrayList и обёртывания.
15+
- icon: "🛡️"
16+
title: Любая коллекция
17+
desc: Принимает любую Collection на входе — без промежуточного преобразования в ArrayList.
18+
support:
19+
description: Широко доступно начиная с JDK 10 (март 2018)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Создание неизменяемых списков
2+
oldApproach: Многословное обёртывание
3+
modernApproach: "List.of()"
4+
summary: Создание неизменяемых списков одним чистым выражением.
5+
explanation: "List.of() создаёт по-настоящему неизменяемый список — без обёртывания\
6+
\ и защитного копирования. Не допускает null-элементов и структурно неизменяем.\
7+
\ Старый подход требовал трёх вложенных вызовов."
8+
whyModernWins:
9+
- icon: "📏"
10+
title: Один вызов
11+
desc: Заменить три вложенных вызова одним фабричным методом.
12+
- icon: "🔒"
13+
title: По-настоящему неизменяемый
14+
desc: Не просто обёртка — сам список неизменяем.
15+
- icon: "🛡️"
16+
title: Безопасен для null
17+
desc: Отклоняет null-элементы при создании и немедленно завершается с ошибкой.
18+
support:
19+
description: Широко доступно начиная с JDK 9 (сент. 2017)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
title: Создание неизменяемых Map
2+
oldApproach: Паттерн Map-Builder
3+
modernApproach: "Map.of()"
4+
summary: Создание неизменяемых Map встроенно без Builder.
5+
explanation: "Map.of() принимает пары ключ-значение встроенно и возвращает неизменяемую\
6+
\ Map. Для более чем 10 записей использовать Map.ofEntries() с парами Map.entry()."
7+
whyModernWins:
8+
- icon: "📏"
9+
title: Встроенное создание
10+
desc: Не требует временной изменяемой Map.
11+
- icon: "🔒"
12+
title: Неизменяемый результат
13+
desc: Map нельзя изменить после создания.
14+
- icon: "🚫"
15+
title: Без null-ключей/значений
16+
desc: Null-записи немедленно отклоняются.
17+
support:
18+
description: Широко доступно начиная с JDK 9 (сент. 2017)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
title: Создание неизменяемых Set
2+
oldApproach: Многословное обёртывание
3+
modernApproach: "Set.of()"
4+
summary: Создание неизменяемых Set одним фабричным вызовом.
5+
explanation: "Set.of() создаёт по-настоящему неизменяемое Set, которое отклоняет\
6+
\ null-элементы и дубликаты при создании. Больше никакого обёртывания изменяемых Set."
7+
whyModernWins:
8+
- icon: "📏"
9+
title: Лаконично
10+
desc: Одна строка вместо трёх вложенных вызовов.
11+
- icon: "🚫"
12+
title: Обнаруживает дубликаты
13+
desc: Выбрасывает исключение при случайной передаче повторяющихся элементов.
14+
- icon: "🔒"
15+
title: Неизменяемый
16+
desc: Нельзя добавлять или удалять элементы после создания.
17+
support:
18+
description: Широко доступно начиная с JDK 9 (сент. 2017)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: "Фабрика Map.entry()"
2+
oldApproach: SimpleEntry
3+
modernApproach: "Map.entry()"
4+
summary: Создание записей Map с помощью чистого фабричного метода.
5+
explanation: "Map.entry() заменяет многословный конструктор AbstractMap.SimpleEntry.\
6+
\ Возвращает неизменяемую запись, идеально подходящую для Map.ofEntries()\
7+
\ и операций со Stream."
8+
whyModernWins:
9+
- icon: "📏"
10+
title: Лаконично
11+
desc: Одна строка вместо трёх с более чётким намерением.
12+
- icon: "🔒"
13+
title: Неизменяемый
14+
desc: Возвращаемую запись нельзя изменить.
15+
- icon: "🧩"
16+
title: Комбинируемый
17+
desc: "Отлично работает с Map.ofEntries() для больших Map."
18+
support:
19+
description: Широко доступно начиная с JDK 9 (сент. 2017)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
title: Обратная итерация по списку
2+
oldApproach: Ручной ListIterator
3+
modernApproach: "reversed()"
4+
summary: Итерация по списку в обратном порядке с помощью чистого цикла for-each.
5+
explanation: "Метод reversed() из SequencedCollection возвращает представление списка\
6+
\ в обратном порядке. Это представление опирается на исходный список, поэтому\
7+
\ копирование не происходит. Расширенный цикл for делает обратную итерацию\
8+
\ такой же читаемой, как прямую."
9+
whyModernWins:
10+
- icon: "📖"
11+
title: Естественный синтаксис
12+
desc: Расширенный цикл for вместо многословного ListIterator.
13+
- icon: ""
14+
title: Без копирования
15+
desc: "reversed() возвращает представление — без накладных расходов на производительность."
16+
- icon: "🧩"
17+
title: Согласованный API
18+
desc: "Работает единообразно на List, Deque и SortedSet."
19+
support:
20+
description: Широко доступно начиная с JDK 21 LTS (сент. 2023)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Упорядоченные коллекции
2+
oldApproach: Арифметика с индексами
3+
modernApproach: getFirst/getLast
4+
summary: "Доступ к первому/последнему элементу и получение обратных представлений с помощью чистых методов API."
5+
explanation: "SequencedCollection добавляет getFirst(), getLast(), reversed(), addFirst()\
6+
\ и addLast() к List, Deque, SortedSet и LinkedHashSet. Больше никакой арифметики\
7+
\ size-1 или ручной обратной итерации."
8+
whyModernWins:
9+
- icon: "📖"
10+
title: Самодокументируемый
11+
desc: "getLast() понятнее, чем get(size()-1)."
12+
- icon: "🔄"
13+
title: Обратное представление
14+
desc: "reversed() возвращает представление — копирование не требуется."
15+
- icon: "🧩"
16+
title: Единый API
17+
desc: "Работает одинаково на List, Deque и SortedSet."
18+
support:
19+
description: Широко доступно начиная с JDK 21 LTS (сент. 2023)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Типизированный Stream-toArray
2+
oldApproach: Ручная фильтрация + копирование
3+
modernApproach: "toArray(generator)"
4+
summary: Преобразование Stream в типизированные массивы с помощью ссылки на метод.
5+
explanation: "Метод toArray(IntFunction) создаёт правильно типизированный массив\
6+
\ из Stream. Генератор (String[]::new) сообщает Stream, какой тип массива\
7+
\ нужно создать."
8+
whyModernWins:
9+
- icon: "🎯"
10+
title: Типобезопасный
11+
desc: "Без приведения к Object[] — тип массива правильный."
12+
- icon: "🔗"
13+
title: Цепочечный
14+
desc: Работает в конце любого потокового конвейера.
15+
- icon: "📏"
16+
title: Лаконично
17+
desc: Одно выражение заменяет ручной цикл.
18+
support:
19+
description: Широко доступно начиная с JDK 8 (март 2014)

0 commit comments

Comments
 (0)