Множество
Множество — это коллекция, которая содержит только уникальные элементы. Порядок обхода элементов соответствует порядку добавления элементов в множество. Множество позволяет хранить элементы произвольных типов.
Множества могут быть неизменяемыми и изменяемыми. Как следует из самого термина, в неизменяемом множестве нельзя изменить добавлять или удалять значения множества. Наряду с термином «неизменяемый» может применяться термин «фиксированный». В то же время, изменяемое множество — это множество, для которого поддерживается изменение списка элементов множества. Изменяемое множество будет называться множеством или обычным множеством. Соответственно, тип для неизменяемого множества называется ЧитаемоеМножество<ТипЭлемента>, а тип для обычного множества — Множество<ТипЭлемента>.
Множество может быть описано пустым и с указанием данных инициализации. Данные инициализации должны располагаться в фигурных скобках "{}". В данных инициализации допускается указывать повторяющиеся значения. Они будут отброшены без формирования ошибок.
пер ПустоеМножество: Множество<Число>
пер МножествоСДанными = {1, 2, 3}
При выполнении проверки вхождения, метод СодержитВсе() проверяет полное вхождение, т.е. результат будет равен Истина в том случае, если в исходном множестве содержаться все элементы из коллекции, которая является параметром метода СодержитВсе().
- Проверка на равенство. Два множества являются равными, если равны их размеры и каждый элемент первого множества, содержится во втором множестве. Допускается сравнивать значения типа Множество<ТипЭлемента> и ЧитаемоеМножество<ТипЭлемента>.
- Объединение множеств (метод Объединение()). В этом случае формируется множество, которое содержит все уникальные
значения двух исходных множеств;
пер Множество1 = {1, 2, 3, 4} пер Множество2 = {3, 4, 5, 6} пер ОбъдинениеМножеств = Множество1.Объединение(Множество2) /* ОбъединениеМножеств = {1, 2, 3, 4, 5, 6} */
- Пересечение множеств (метод Пересечение()). В этом случае формируется множество, которое содержит только те
элементы, которые присутствуют одновременно в обоих множествах;
пер Множество1 = {1, 2, 3, 4} пер Множество2 = {3, 4, 5, 6} пер ПересечениеМножеств = Множество1.Пересечение(Множество2) /* ПересечениеМножеств = {3, 4} */
-
Разность множеств (методы Разность() и СимметрическаяРазность()). Простая разность формирует результирующее множество, которое содержит только те элементы исходного множества, которые отсутствуют в множестве, которое является параметром метода.
пер Множество1 = {1, 2, 3, 4} пер Множество2 = {3, 4, 5, 6} пер РазностьМножеств = Множество1.Разность(Множество2) /* РазностьМножеств = {1, 2} */
Симметрическая разность формирует результирующее множество, которое содержит только те элементы, которые уникальны в каждом множестве. Другими словами, результат работы метода СимметрическаяРазность() не будет включать в себя значения, которые есть одновременно в обоих множествах.пер Множество1 = {1, 2, 3, 4} пер Множество2 = {3, 4, 5, 6} пер СимметрическаяРазностьМножеств = Множество1.СимметрическаяРазность(Множество2) /* СимметрическаяРазностьМножеств = {1, 2, 5, 6} */
Доступ к элементам множества поддерживается только с помощью цикла для из. Доступ к элементам множества с помощью функционального способа или с помощью операции доступа по индексу [] не поддерживается.
В цикле обхода коллекции «Исполнитель» не поддерживает изменение состава коллекции. При попытке такого изменения «Исполнитель» выбросит исключение.
метод МойМетод()
ВывестиМножество({1, "2", 3, Истина, [1, 2, 3]})
;
метод ВывестиМножество(ЧтоВыводим: ЧитаемоеМножество<Булево|Число|Строка|Массив<Число>>)
Консоль.Записать("Тип параметра: " + ЧтоВыводим.ПолучитьТип())
Консоль.Записать("Размер параметра: " + ЧтоВыводим.Размер())
для ЭлементКоллекции из ЧтоВыводим
Консоль.Записать("Значение = " + ЭлементКоллекции + ", тип значения = " + ЭлементКоллекции.ПолучитьТип())
;
;
Вывод типа значения множества в данном примере призван показать, что одно множество может содержать значения разного типа.