Package Collections
..\mac\extra\collections\Collections.mac
Библиотека коллекций для языка RSL.
Создана с целью взаимодействия с объектами описанными на языке RSL в объектно-ориентированном и функциональном стилях программирования.
В большинстве своём схожа с Java.collections.
Для начала использования, достаточно импортировать библиотеку в макрофайл директивой import "..\\Mac\\Extra\\Collections\\Collections.mac";
Также возможен импорт отдельных макрофайлов.
Изначально все коллекции поддерживают работу с элементами разных типов RSL. Однако для обеспечения лучшей производительности рекомендуется использовать в одной коллекции элементы одного типа и определить этот тип методами ListInterface.setType для списков, SetInterface.setType для сэтов, и MapInterface.setKeyType и MapInterface.setValueType для карт.
Иерархия классов. Базовый класс Iterable. От него наследуются абстрактные классы-интерфейсы определяющее общие методы.
Списки (ListInterface):
- ArrayList - список, реализованный на основе массива TArray.
- LinkedList - двусвязный список. Присутствуют методы стека и очереди.
- SortedLinkedList - сортированный двусвязный список. Все элементы коллекции упорядочены в каждый момент времени согласно заданной функции-компаратору.
Множества (SetInterface), коллекции уникальных элементов.
- HashSet - Сэт на основе HashMap. Самый быстрый по производительности вариант. Не гарантирует сохранение порядка.
- LinkedHashSet - тоже самое что и HashSet, однако элементы будут стоять в порядке добавления.
- TreeSet - Сэт на основе TreeMap. Элементы располагаются в порядке возрастания согласно заданной функции-компаратору.
Карты (MapInterface), коллекции для работы с парами ключ-значение.
- HashMap - она же хэштаблица. Не гарантирует порядок элементов.
- LinkedHashMap - упорядоченная реализация HashMap. Сохраняет порядок добавления.
- TreeMap - реализация основанная на красно-черных деревьях. Элементы располагаются в порядке возрастания ключей.
- ArrayMap - реализация на основе двух массивов для примитивных ключей. Занимает меньше остальных карт места в памяти. Элементы упорядочены по возрастанию ключей.
Макрофайлы
ArrayMap
..\mac\extra\collections\ArrayMap.mac
Файл включает в себя реализацию интерфейса map через два массива
HashMap
..\mac\extra\collections\HashMap.mac
Файл включает в себя реализацию классического интерфейса map через хэш-таблицу
HashSet
..\mac\extra\collections\HashSet.mac
Файл включает в себя реализацию классического интерфейса set, коллекцию уникальных значений
LinkedHashMap
..\mac\extra\collections\LinkedHashMap.mac
Файл включает в себя реализацию классов LinkedHashMap
LinkedHashSet
..\mac\extra\collections\LinkedHashSet.mac
Файл включает в себя реализацию LinkedHashSet - коллекции уникальных элементов с сохранением порядка добавления
LinkedList
..\mac\extra\collections\LinkedList.mac
Файл включает в себя реализацию связного списка LinkedList и отсортированного связного списка SortedLinkedList
TreeMap
..\mac\extra\collections\TreeMap.mac
Файл включает в себя реализацию классического интерфейса map через красно-черное дерево
TreeSet
..\mac\extra\collections\TreeSet.mac
Реализация отсортированной коллекции уникальных значений
Импорты
Файл включает в себя реализацию интерфейса map через два массива
Файл включает в себя реализацию классического интерфейса map через хэш-таблицу
Файл включает в себя реализацию классического интерфейса set, коллекцию уникальных значений
Базовые классы и функции коллекций
Файл включает в себя реализацию классов LinkedHashMap
Файл включает в себя реализацию LinkedHashSet - коллекции уникальных элементов с сохранением порядка добавления
Файл включает в себя реализацию связного списка LinkedList и отсортированного связного списка SortedLinkedList
Файл включает в себя реализацию классического интерфейса map через красно-черное дерево
Реализация отсортированной коллекции уникальных значений
Библиотека для динамического создания функций из строковых шаблонов
Реализованные функции-компараторы (compare и equals)
Реализация исключений и блоков try/catch/finally
Вспомогательные классы и функции для реализации ООП паттернов
Релизация функций для сортировки массива
Полезные утилиты для работы со строковыми переменными
bankinter
rcw
rsexts
Известные зависимые
Объекты коллекторы
Библиотека вспомогательных классов и функций в ООП и функциональном стиле
Реализация Stream Api