|
2 | 2 |
|
3 | 3 | КоллекшонОС это фреймворк коллекций для OneScript |
4 | 4 |
|
5 | | -## Особенности |
6 | | -Начиная с версии OneScript 2.0 появилась возможность обходить собственные классы коллекции циклом `Для каждого`, особенность описанная ниже актуальна для более ранних версий движка: |
| 5 | +## Коллекции |
7 | 6 |
|
8 | | -Так как в OneScript нет возможности сделать класс обходимым, то все представленные коллекции нельзя обойти циклом `Для каждого`, вместо этого вы можете воспользоваться итератором: |
| 7 | +Фреймворк предоставляет следующие коллекции |
9 | 8 |
|
10 | | -```bsl |
11 | | -СписокМассив = Новый СписокМассив; |
12 | | -СписокМассив.Добавить(1); |
13 | | -СписокМассив.Добавить(2); |
14 | | -СписокМассив.Добавить(3); |
| 9 | +### Множества |
15 | 10 |
|
16 | | -Итератор = СписокМассив.Итератор(); |
| 11 | +Множества - неиндексированные коллекции уникальных элементов. |
17 | 12 |
|
18 | | -Пока Итератор.ЕстьСледующий() Цикл |
| 13 | +1. МножествоСоответствие - Множество, реализованное на базе соответствия. |
| 14 | +1. МножествоКарта - Множество, реализованное на базе карты. |
19 | 15 |
|
20 | | - Элемент = Итератор.Следующий(); |
| 16 | +### Списки |
21 | 17 |
|
22 | | - Сообщить(Элемент); |
| 18 | +Спики - индексированные коллекции элементов. |
23 | 19 |
|
24 | | -КонецЦикла; |
| 20 | +1. СписокМассив - Список, реализованный на базе массива. |
25 | 21 |
|
26 | | -// > 1 |
27 | | -// > 2 |
28 | | -// > 3 |
29 | | -``` |
| 22 | +### Карты |
| 23 | + |
| 24 | +Карты - Коллекции пар ключ-значение. |
| 25 | + |
| 26 | +1. КартаСоответствие - Карта, реализованная на базе соответствия. |
| 27 | + |
| 28 | +### Очереди |
| 29 | + |
| 30 | +Очереди - коллекции элементов, в которых элементы добавляются в конец и извлекаются из начала. |
| 31 | + |
| 32 | +1. ОчередьМассив - Очередь, реализованная на базе массива. |
| 33 | +1. ПриоритетнаяОчередь - Очередь, реализованная на базе массива, которая сортируются элементы в порядке заданным компаратором. |
| 34 | +1. ОчередьОтложенных - Потокобезопасная очередь, частный случай приоритетной очереди, элементы которой должны иметь метод `Задержка` которые возвращает количество миллисекунд до того как элемент станет доступным для извлечения, элементы очереди сортируются в порядке возрастания задержек. |
| 35 | + |
| 36 | +## Представления |
| 37 | + |
| 38 | +Представления - специальные объекты "обёртки" для коллекций, в конструктор которой передаётся коллекция, и которая предоставляет дополнительные гарантии. |
| 39 | + |
| 40 | +### Синхронизированные |
| 41 | + |
| 42 | +Синхронизированные представления предоставляют потокобезопасные обёртки для коллекций. |
30 | 43 |
|
31 | | -## Диаграмма классов: |
| 44 | +1. СинхронизированнаяКоллекция - Представление реализующее интерфейс `Коллекция`. |
| 45 | +1. СинхронизированноеМножество - Объект реализующий интерфейс `Множество`. |
| 46 | +1. СинхронизированныйСписок - Объект реализующий интерфейс `Список`. |
| 47 | +1. СинхронизированнаяКарта - Объект реализующий интерфейс `Карта`. |
| 48 | +1. СинхронизированнаяОчередь - Объект реализующий интерфейс `Очередь`. |
| 49 | + |
| 50 | +### Фиксированные |
| 51 | + |
| 52 | +Фиксированные представления предоставляют неизменяемые обёртки для коллекций. |
| 53 | + |
| 54 | +1. ФиксированнаяКоллекция - Представление реализующее интерфейс `ЧитаемаяКоллекция`. |
| 55 | +1. ФиксированноеМножество - Объект реализующий интерфейс `ЧитаемоеМножество`. |
| 56 | +1. ФиксированныйСписок - Объект реализующий интерфейс `ЧитаемыйСписок`. |
| 57 | +1. ФиксированнаяКарта - Объект реализующий интерфейс `ЧитаемаяКарта`. |
| 58 | + |
| 59 | +## Диаграмма классов |
32 | 60 |
|
33 | 61 | ### Обходимое |
| 62 | + |
34 | 63 | --- |
35 | 64 |
|
36 | 65 | ```mermaid |
@@ -80,6 +109,7 @@ class СинхронизированнаяКоллекция { |
80 | 109 | ``` |
81 | 110 |
|
82 | 111 | ### Множество |
| 112 | + |
83 | 113 | --- |
84 | 114 |
|
85 | 115 | ```mermaid |
@@ -115,6 +145,7 @@ class СинхронизированноеМножество { |
115 | 145 | ``` |
116 | 146 |
|
117 | 147 | ### Список |
| 148 | + |
118 | 149 | --- |
119 | 150 |
|
120 | 151 | ```mermaid |
@@ -161,6 +192,7 @@ class СинхронизированныйСписок { |
161 | 192 | ``` |
162 | 193 |
|
163 | 194 | ### Очередь |
| 195 | + |
164 | 196 | --- |
165 | 197 |
|
166 | 198 | ```mermaid |
@@ -205,6 +237,7 @@ class СинхронизированнаяОчередь { |
205 | 237 | ``` |
206 | 238 |
|
207 | 239 | ### Карта |
| 240 | + |
208 | 241 | --- |
209 | 242 |
|
210 | 243 | ```mermaid |
@@ -261,6 +294,7 @@ class СинхронизированнаяКарта { |
261 | 294 | ``` |
262 | 295 |
|
263 | 296 | ### Итератор |
| 297 | + |
264 | 298 | --- |
265 | 299 |
|
266 | 300 | ```mermaid |
|
0 commit comments