Rápido – Conjuntos

Un conjunto es una colección de elementos únicos. Por único, queremos decir que no hay dos elementos en un conjunto que puedan ser iguales. A diferencia de los conjuntos en C++, los elementos de un conjunto en Swift no se organizan en ningún orden en particular. Internamente, un conjunto en Swift usa una tabla hash para almacenar elementos en el conjunto. Consideremos un ejemplo, queremos verificar el número de notas únicas o diferentes obtenidas por los estudiantes en una clase. Se puede utilizar un conjunto para realizar esta tarea. Sea una lista que contenga marcas, lista = [98, 80, 86, 80, 98, 98, 67, 90, 67, 84]. En la lista, 98 ocurre tres veces, 80 y 67 ocurren dos veces mientras que 84, 86 y 90 ocurren solo una vez. Entonces, hay un total de seis marcas únicas obtenidas por los estudiantes en una clase. Podemos declarar un conjunto de enteros e insertar estos valores en el conjunto. El tamaño del conjunto determina el número de marcas únicas obtenidas por los estudiantes.  

Creación de conjuntos

Podemos crear un conjunto vacío usando la siguiente sintaxis. Este método espera explícitamente un tipo de datos del conjunto. Por ejemplo, si queremos almacenar valores Int en el conjunto, podemos pasar Int entre paréntesis angulares (<Int>). Del mismo modo, podemos pasar las palabras clave Float, Character, String, Double, Bool al corchete angular, etc.

 Sintaxis:

var mySet = Establecer<tipo_datos>()   

Aquí, data_type es el tipo de datos almacenados por el conjunto (Int, Character, String, etc.). A continuación se muestra el programa para ilustrar cómo podemos crear un conjunto vacío.

Ejemplo:

Swift

// Swift program to illustrate how we can create
// an empty set of Int, Float, Double, Character
// and String type
import Foundation
import Glibc
 
// Creating an empty set of Int data type
var mySet1 = Set<Int>()
 
// Inserting elements in mySet1
mySet1.insert(10)
mySet1.insert(20)
mySet1.insert(10)
print("mySet1:", mySet1)
 
// Creating an empty set of Float data type
var mySet2 = Set<Float>()
 
// Inserting elements in mySet2
mySet2.insert(10.123)
mySet2.insert(20.123)
print("mySet2:", mySet2)
 
// Creating an empty set of Double data type
var mySet3 = Set<Double>()
 
// Inserting elements in mySet3
mySet3.insert(10.123456)
mySet3.insert(20.123456)
print("mySet3:", mySet3)
 
// Creating an empty set of Character data type
var mySet4 = Set<Character>()
 
// Inserting elements in mySet4
mySet4.insert("S")
mySet4.insert("C")
print("mySet4:", mySet4)
 
// Creating an empty set of String data type
var mySet5 = Set<String>()
 
// Inserting elements in mySet5
mySet5.insert("GeeksfoGeeks")
mySet5.insert("Geeks")
print("mySet5:", mySet5)
 
// Creating a empty Set of Boolean type
var mySet6 = Set<Bool>()
 
// Inserting elements in mySet6
mySet6.insert(true)
mySet6.insert(false)
print("mySet6:", mySet6)

Producción:

mySet1: [20, 10]
mySet2: [20.123, 10.123]
mySet3: [20.123456, 10.123456]
mySet4: ["H", "i"]
mySet5: ["Geeks", "GeeksfoGeeks"]
mySet6: [true, false]

Tenga en cuenta que hemos insertado 10 dos veces en mySet1 pero internamente se almacenó solo una vez en mySet1.

Inicialización de un Conjunto

Inicializar un conjunto básicamente significa que queremos almacenar algún valor en un conjunto en el momento de la declaración. Podemos inicializar un conjunto usando los siguientes métodos:

Método 1: este método de inicialización no requiere pasar explícitamente un tipo de datos al conjunto. El compilador determina implícitamente el tipo de datos en función de los valores proporcionados a un conjunto.

Sintaxis:

var mySet : Conjunto = [valor1, valor2, valor3,…….]

Aquí, mySet es el Set declarado, Set es la palabra clave utilizada para especificar que mySet es un Set, y value1,value2, value,… son los elementos que pertenecen a mySet. A continuación se muestra la implementación para ilustrar cómo podemos inicializar un conjunto.

Ejemplo:

Swift

// Swift program to illustrate how we can
// initialize a set of Int, Float, Character,
// String
 
// Initializing a set of integers
var mySet1: Set = [ 1, 1, 2, 3, 5 ]
 
// Initializing a set of floats
var mySet2: Set = [ 1.123, 2.123, 3.123, 4.123, 5.123 ]
 
// Initializing a set of strings
var mySet3: Set = [ "Geeks", "for", "Geeks" ]
 
// Initializing a set of characters
var mySet4: Set = [ "G", "e", "e", "k", "s" ]
 
// Print the mySet1
print("mySet1: \(mySet1)")
 
// Print the mySet2
print("mySet2: \(mySet2)")
 
// Print the mySet3
print("mySet3: \(mySet3)")
 
// Print the mySet4
print("mySet4: \(mySet4)")

Producción:

mySet1: [3, 2, 5, 1]
mySet2: [2.123, 3.123, 5.123, 1.123, 4.123]
mySet3: ["for", "Geeks"]
mySet4: ["e", "G", "k", "s"]

Método 2: este método de inicialización requiere pasar explícitamente un tipo de datos al conjunto entre paréntesis angulares <>. Por ejemplo, si queremos almacenar elementos de tipo de datos Int en un conjunto, podemos usar <Int>. Asimismo, podemos pasar otros tipos de datos como Float, Double, Character, String, Bool, etc.   

var mySet : Set<tipo_de_datos> = [valor1, valor2, valor3,…….]

Aquí, mySet es el Set declarado, data_type especifica explícitamente que mySet puede almacenar elementos de un tipo de datos particular, Set es una palabra clave que especifica que mySet es un Set y value1, value2, value,… son los elementos que pertenecen a mySet. A continuación se muestra la implementación para ilustrar cómo podemos inicializar un conjunto.

Ejemplo:

Swift

// Swift program to illustrate how to initialize a set by
// explicitly specifying the data-type of the set
 
// Initializing a set of integers
// by explicitly passing the data type of the set
var mySet1: Set<Int> = [ 10, 20, 20, 30, 50, 100, 20 ]
 
// Initializing a set of floats
// by explicitly passing the data type of the set
var mySet2: Set<Float> = [ 1.123, 2.123, 3.123, 4.123,
                           5.123, 6.123, 7.123 ]
 
// Initializing a set of doubles
// by explicitly passing the data type of the set
var mySet3: Set<Double> = [ 1.1234567, 2.1234567, 3.1234567,
                            4.1234567, 5.1234567, 6.1234567,
                            7.1234567 ]
 
// Initializing a set of characters
// by explicitly passing the data type of the set
var mySet4: Set<Character> = ["G", "e", "e", "k", "s"]
 
// Initializing a set of strings
// by explicitly passing the data type of the set
var mySet5: Set<String> = [ "GeeksforGeeks", "Java", "Python",
                            "Swift", "Php" ]
 
print("mySet1 elements are: ")
 
// Print mySet1 elements
for element in mySet1{
    print(element)
}
 
print("\n")
print("mySet2 elements are: ")
 
// Print mySet2 elements
for element in mySet2{
    print(element)
}
 
print("\n")
print("mySet3 elements are: ")
 
// Print mySet3 elements
for element in mySet3{
    print(element)
}
 
print("\n")
print("mySet4 elements are: ")
 
// Print mySet4 elements
for element in mySet4{
    print(element)
}
 
print("\n")
 
// Print mySet5 elements
print("mySet5 elements are: ")
 
// Print mySet5 elements
for element in mySet5{
    print(element)
}

Producción:

mySet1 elements are: 
20
50
100
10
30


mySet2 elements are: 
5.123
6.123
3.123
2.123
1.123
4.123
7.123


mySet3 elements are: 
3.1234567
1.1234567
4.1234567
6.1234567
5.1234567
2.1234567
7.1234567


mySet4 elements are: 
k
s
e
G


mySet5 elements are: 
GeeksforGeeks
Java
Python
Swift
Php

Método 3: Swift proporciona un método incorporado llamado método insert() que se usa para agregar elementos a un Conjunto. Toma O(1) o tiempo constante.

Sintaxis:

miConjunto.insertar(x)

Ejemplo:

Swift

// Swift program to illustrate how to add elements in set
 
// Creating an empty set of Int data type
var mySet = Set<String>()
 
// Inserting elements in mySet1
mySet.insert("GeeksforGeeks")
mySet.insert("GFG")
mySet.insert("Geeks")
 
print("Elements of mySet are :")
for element in mySet{
     
    // Print a Set element
    print(element)
}

Producción:

Elements of mySet are :
GeeksforGeeks
Geeks
GFG

Iterando sobre un conjunto

1. Usando el bucle for-in: Para iterar sobre un conjunto podemos tomar la ayuda del bucle for-in. Apunta directamente a los valores especificados en un conjunto.

Sintaxis:

para elemento en mySet {

       // cuerpo

 }

Aquí, mySet es el conjunto inicializado y el elemento es un elemento de mySet.

Ejemplo:

Swift

// Swift program to illustrate how we can iterate
// over a set using for-in loop
 
// Initializing a Set of integers
var mySet1 : Set = [ 1, 21, 13, 4, 15, 6 ]
 
// Iterating over mySet1 using
// for loop
print("mySet1 elements are :")
for element in mySet1{
     
    // Print a Set element
    print(element)
}
 
// Next line
print("\n")
 
// Initializing a Set of String
var mySet2 : Set = [ "Bhuwanesh", "Kunal", "Aarush",
                     "Honey", "Nawal" ]
 
// Iterating over mySet2 using
// for loop
print("mySet2 elements are :")
for element in mySet2{
     
    // Print a Set element
    print(element)
}

Producción: 

mySet1 elements are :
15
21
1
4
13
6


mySet2 elements are :
Kunal
Honey
Bhuwanesh
Aarush
Nawal

2. Usar el método de instancia index (:offsetBy:): Swift proporciona un método de instancia mediante el cual podemos acceder a los elementos del conjunto. Este método es equivalente a acceder a elementos del conjunto usando índices. Podemos iterar sobre los índices usando un bucle while e imprimir el valor presente en el índice especificado. 

Sintaxis: 

func index(mySet.startIndex, offsetBy: index)

Parámetros: mySet.startIndex es el índice inicial del conjunto y el índice es un número entero no negativo.

Valor devuelto : Devuelve un valor especificado en la posición, índice 

A continuación se muestra la implementación para ilustrar el método de instancia de desplazamiento para iterar sobre un conjunto.

Ejemplo: 

Swift

// Swift program to illustrate the working of
// offset method to iterate over a set
 
// Initializing a set of integers
var mySet1: Set = [ 10, 3, 4, 8, 9 ]
 
// Initializing a variable that will
// act as an Index
var Index = 0
 
print("mySet1 elements: ")
 
// Iterating over indices
// Using while loop
while Index < mySet1.count{
    
   // Printing elements using offset method
   print(mySet1[mySet1.index(mySet1.startIndex,
                             offsetBy: Index)])
 
   Index = Index + 1
}
 
print("\n")
 
// Initializing a set of floats
var mySet2: Set = [ 1.123, 3.123, 4.123, 8.123, 9.123 ]
 
// Initializing a variable that will
// act as an Index
Index = 0
 
print("mySet2 elements: ")
 
// Iterating over indices
// Using while loop
while Index < mySet2.count{
    
   // Printing elements using offset method
   print(mySet2[mySet2.index(mySet2.startIndex,
                             offsetBy: Index)])
 
   Index = Index + 1
}

Producción:

mySet1 elements: 
10
4
9
3
8


mySet2 elements: 
3.123
1.123
9.123
4.123
8.123

Comparación de conjuntos

Comparar dos conjuntos significa que queremos verificar si contienen elementos similares o no. Por ejemplo, mySet1 = [9, 1, 3, 10, 12] y mySet2 = [1, 3, 10, 12, 9] son ​​conjuntos iguales ya que contienen los mismos elementos, mientras que mySet1 = [1, 2, 5, 4, 11] y mySet2 = [1, 2, 5, 4, 3, 11] son ​​diferentes entre sí ya que 2 está presente en mySet2 pero no está presente en mySet1. Podemos comparar dos conjuntos usando los siguientes métodos:

1. Usando el método de contener(): podemos comparar dos conjuntos definiendo un método de comparación personalizado. Siga el enfoque a continuación para comprender cómo comparar dos conjuntos:

Acercarse:

1. Defina una función global, Compare. El tipo de retorno de este método sería bool ya que queremos saber si dos conjuntos son iguales o no. Este método acepta dos conjuntos, mySet1 y mySet2 como parámetros. 

2. Iterar sobre mySet1 usando el bucle for-in. Para cada elemento en mySet1 , verifique si está presente en mySet2 usando el método contains(). Si un elemento está presente en mySet1 pero no está presente en mySet2 , devuelve falso.

3. Ahora itere sobre mySet2 usando el bucle for-in. Para cada elemento en mySet2 , verifique si está presente en mySet1 usando el método contains(). Si un elemento está presente en mySet2 pero no está presente en mySet1 , devuelve falso.

4. Eventualmente, devuelva verdadero desde la función Comparar .

A continuación se muestra la implementación para ilustrar el enfoque anterior:

Ejemplo:

Swift

// Swift program to illustrate how we can compare
// two set using a custom function
 
// Defining a custom function which accepts two
// sets as a parameters
func Compare(mySet1: Set<Int>, mySet2: Set<Int>) -> Bool {
    
    // Iterate over each element of mySet1
    for element in mySet1
    {
     
        // If there is an element which is present
        // in mySet1 but not present in mySet2
        // return false from the Compare function
        if (!mySet2.contains(element))
        {
            return false
        }
    }
   
   for element in mySet2
   {
    
        // If there is an element which is present
        // in mySet2 but not present in mySet1
        // return false  
        if (!mySet1.contains(element))
        {
            return false
        }
   }
    
   // Since all elements are common
   // return true from the Compare function
   return true
}
 
// Initializing a Set of Int type
var mySet1 : Set = [ 1, 3, 4, 7, 10, 12 ]
 
// Initializing another Set of Int type
var mySet2 : Set = [ 10, 7, 4, 3, 1, 2]
 
// Initializing a Set of Int type
var mySet3 : Set = [ 1, 3, 4, 7, 10, 2 ]
 
// Calling compare method to compare mySet1 and mySet2
print("Are myset1 and myset2 equal ? \(Compare(mySet1: mySet1, mySet2: mySet2))" )
 
// Calling compare method to compare mySet1 and mySet3
print("Are myset1 and myset3 equal ? \(Compare(mySet1: mySet1, mySet2: mySet3))" )
 
// Calling compare method to compare mySet2 and mySet3
print("Are myset2 and myset3 equal ? \(Compare(mySet1: mySet2, mySet2: mySet3))" )

 
Producción: 

Are myset1 and myset2 equal ? false
Are myset1 and myset3 equal ? false
Are myset2 and myset3 equal ? true

2. Usar el operador de comparación ( == ): Swift proporciona el operador de comparación “==” para comparar dos conjuntos directamente. Internamente, comprueba si los conjuntos contienen los mismos elementos. Si ambos conjuntos tienen elementos similares, devuelve verdadero; de lo contrario, devuelve falso. Tenga en cuenta que los conjuntos de tipo mySet1 = [5, 1, 7, 8] y mySet2 = [1, 8, 7, 5] se consideran iguales ya que no hay un orden fijo en el que los elementos del conjunto se almacenan en un conjunto. y sólo nos preocupa si contienen elementos similares.

Sintaxis: 

miConjunto1 == miConjunto2

Aquí, mySet1 y mySet2 son los conjuntos que queremos comparar

Tipo de retorno: 

  • Verdadero: si ambos conjuntos contienen los mismos elementos
  • Falso: si hay un elemento que está presente en un conjunto y no está presente en otro conjunto o viceversa.

A continuación se muestra el programa para ilustrar cómo podemos utilizar un operador de comparación para comparar dos conjuntos en Swift.

Ejemplo: 

Swift

// Swift program to illustrate how we can compare
// two sets using comparison operator
 
// Initializing a set
var mySet1: Set = [ 20.123, 50.123, 30.123, 10.123, 40.123 ]
 
// Initializing another set
var mySet2: Set = [ 10.123, 20.123, 30.123, 40.123, 50.123 ]
 
// Initializing a set
var mySet3: Set = [ 10.123, 20.123, 30.123, 40.123, 50.123, 60.123 ]
 
// Check whether mySet1 and mySet2 are equal
print("Are myset1 and myset2 equal ? \(mySet1 == mySet2)")
 
// Check whether mySet1 and mySet3 are equal
print("Are myset1 and myset3 equal ? \(mySet1 == mySet3)")
 
// Check whether mySet2 and mySet3 are equal
print("Are myset2 and myset2 equal ? \(mySet2 == mySet3)")

Producción:

Are myset1 and myset2 equal ? true
Are myset1 and myset3 equal ? false
Are myset2 and myset2 equal ? false

Establecer operaciones 

Podemos realizar una serie de operaciones básicas de conjuntos que son unión, intersección, resta. diferencia, etc utilizando los métodos incorporados proporcionados en Swift.

1. Unión: La Unión de dos conjuntos es un conjunto formado por la combinación de los elementos de dos conjuntos. Por ejemplo, considere dos conjuntos, mySet1 = {2, 10, 1, 4} y mySet2 = {10, 3, 12}. Entonces el conjunto unión sería myUnion = {2, 10, 1, 4, 3, 12}. En Swift, podemos lograr una unión de dos conjuntos con la ayuda del método union() incorporado que se usa con los conjuntos. Este método requiere dos conjuntos y crea un nuevo conjunto que contiene la unión de los conjuntos especificados.

Sintaxis:

miConjunto1.union(miConjunto2)

Aquí, mySet1 y mySet2 son conjuntos inicializados

Tipo de retorno: Devuelve un conjunto que tiene elementos que pertenecen a un conjunto, a otro conjunto o a ambos.

Esta operación toma un tiempo O(n), donde n es la longitud de la secuencia más larga.

Setunion

Ejemplo:

Swift

// Swift program to illustrate the working of Union operation
 
// Initializing a set containing multiples of 3
var mySet1: Set = [ 3, 6, 9, 12, 15, 18, 21, 24, 27, 30 ]
 
// Initializing a set containing multiple of 5
var mySet2: Set = [ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 ]
 
// Using inbuilt union method to produce the union
// of sets containing multiples of 3 and 5
var unionOfSets = mySet1.union(mySet2).sorted()
print("Union set: \(unionOfSets)")

Producción:

Union set: [3, 5, 6, 9, 10, 12, 15, 18, 20, 21, 24, 25, 27, 30, 35, 40, 45, 50]

2. Intersección: La intersección de dos conjuntos es un conjunto que tiene solo los elementos comunes a ambos conjuntos. Por ejemplo, considere dos conjuntos, mySet1 = {2, 10, 1, 4} y mySet2 = {10, 3, 12}. Entonces, el conjunto de intersección sería myIntersection = {10}. En Swift, podemos lograr una intersección de dos conjuntos con la ayuda del método de intersection() incorporado que se usa con los conjuntos. Este método requiere dos conjuntos y crea un nuevo conjunto que contiene la intersección de los conjuntos especificados.

Sintaxis:

miConjunto1.intersección(miConjunto2)

Aquí, mySet1 y mySet2 son conjuntos inicializados

Tipo de retorno: Devuelve un conjunto que tiene elementos que son comunes a ambos conjuntos

Esta operación toma un tiempo O(n), donde n es la longitud de la secuencia más larga.

Ejemplo:

Swift

// Swift program to illustrate the working of Intersection set operation
 
// Initializing a set containing multiples of 3
var mySet1: Set = [ 3, 6, 9, 12, 15, 18, 21, 24, 27, 30 ]
 
// Initializing a set containing multiple of 5
var mySet2: Set = [ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 ]
 
// Using inbuilt intersection method to produce the
// union of sets containing multiples of 3 and 5
var intersectionOfSets = mySet1.intersection(mySet2).sorted()
print("Intersection set: \(intersectionOfSets)")

Producción:

Intersection set: [15, 30]

3. Resta: La resta de dos conjuntos de la forma “conjunto1 – conjunto2” es un conjunto que tiene solo los elementos que están presentes en el conjunto1 pero no están presentes en el conjunto2. Por ejemplo, considere dos conjuntos, mySet1 = {2, 10, 1, 4} y mySet2 = {10, 3, 12}. Entonces el conjunto de resta sería mySubtraction = {2, 1, 4}. En Swift, podemos lograr una resta de dos conjuntos con la ayuda del método de subtracting() incorporado que se usa con los conjuntos. Este método requiere dos conjuntos y crea un nuevo conjunto que contiene la resta de conjuntos específicos.

Sintaxis:

miConjunto1.restando(miConjunto2)

Aquí, mySet1 y mySet2 son conjuntos inicializados

Tipo de retorno: Devuelve un conjunto que tiene elementos que están presentes en un conjunto (mySet1) pero no están presentes en otro conjunto (mySet2).

Esta operación toma un tiempo O(n), donde n es la longitud de la secuencia más larga.

Ejemplo:

Swift

// Swift program to illustrate the working of
// subtraction set operation
 
// Initializing a set containing multiples of 3
var mySet1: Set = [ 3, 6, 9, 12, 15, 18, 21, 24, 27, 30 ]
 
// Initializing a set containing multiple of 5
var mySet2: Set = [ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 ]
 
// Using inbuilt subtracting method to produce the
// subtraction of sets containing multiples of 3 and 5
var subtractionOfSets = mySet1.subtracting(mySet2).sorted()
print("Subtraction set: \(subtractionOfSets)")

Producción:

Subtraction set: [3, 6, 9, 12, 18, 21, 24, 27]

4. Diferencia simétrica: La diferencia simétrica de dos conjuntos A y B es un conjunto que tiene todos los elementos de ambos conjuntos excepto los elementos comunes. Por ejemplo, considere dos conjuntos, mySet1 = {2, 10, 1, 4} y mySet2 = {10, 3, 12}. Entonces, la diferencia simétrica sería mySymmetricDifference = {2, 1, 4}. En Swift, podemos lograr una diferencia simétrica de dos conjuntos con la ayuda del método symmetricDifference() incorporado que se usa con los conjuntos. Este método requiere dos conjuntos y crea un nuevo conjunto que contiene la diferencia simétrica de los conjuntos especificados.

Sintaxis:

miConjunto1.DiferenciaSimétrica(miConjunto2)

Aquí, mySet1 y mySet2 son conjuntos inicializados

Tipo de retorno: Devuelve un conjunto que tiene todos los elementos de ambos conjuntos excepto los elementos comunes. 

Esta operación toma un tiempo O(n), donde n es la longitud de la secuencia más larga.

Ejemplo:

Swift

// Swift program to illustrate the working of
// Symmetric Difference set operation
 
// Initializing a set containing multiples of 3
var mySet1: Set = [ 3, 6, 9, 12, 15, 18, 21, 24, 27, 30 ]
 
// Initializing a set containing multiple of 5
var mySet2: Set = [ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 ]
 
// Using inbuilt symmetric difference method to
// produce the symmetric difference of sets
// containing multiples of 3 and 5
var symmetricDifferenceOfSets = mySet1.symmetricDifference(mySet2).sorted()
print("Symmetric difference set: \(symmetricDifferenceOfSets)")

Producción:

Symmetric difference set: [3, 5, 6, 9, 10, 12, 18, 20, 21, 24, 25, 27, 35, 40, 45, 50]

5. Subconjunto: Un conjunto es un subconjunto de otro conjunto si todos los elementos del primer conjunto son elementos del segundo conjunto. Por ejemplo, mySet1 = {1, 2, 4, 3} es un subconjunto de mySet2 = {5, 3 , 1, 2, 4}. En Swift, podemos verificar si un conjunto es un subconjunto de otro conjunto con la ayuda del método isSubset() incorporado que se usa con los conjuntos.

Sintaxis:

mySet1.isSubset(de: mySet2)

Aquí, mySet1 y mySet2 son conjuntos inicializados

Tipo de retorno:

  • verdadero: si un conjunto es un subconjunto de otro conjunto
  • falso: si un conjunto no es un subconjunto de otro conjunto

A continuación se muestra el programa para ilustrar estas operaciones de conjuntos: 

Ejemplo:

Swift

// Swift program to illustrate the working of Subset
 
// Initializing a set containing multiples of 3
var mySet1: Set = [ 3, 6, 9, 12, 15, 18, 21, 24, 27, 30 ]
 
// Initializing a set containing multiple of 5
var mySet2: Set = [ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 ]
 
// Check mySet1 is a subset mySet2 or not
print("Is mySet1 a subset of mySet2 ?: \(mySet1.isSubset(of: mySet2))")

Producción: 

Is mySet1 a subset of mySet2 ?: false

Modificación de conjuntos

Para modificar un conjunto, Swift proporciona una serie de métodos asociados con un conjunto y son:

1. remove(x): Esta función se utiliza para eliminar un elemento ‘ x ‘ de un Conjunto. Si el elemento aún no está presente en el Conjunto, incluso entonces el programa se compila con éxito. Esta es una característica única en Swift y es por eso que un conjunto en Swift a veces es más ventajoso que un conjunto en otros lenguajes como C++.

Sintaxis: 

miConjunto.remove(x)

2. removeFirst(): este método se utiliza para eliminar el primer elemento de un conjunto. Dado que los elementos del conjunto no están dispuestos en ningún orden en particular en un conjunto en Swift, es por eso que podemos predecir de antemano qué elemento se eliminará con este método. La complejidad temporal de este método es constante amortizada, O(1).

Sintaxis: 

miConjunto.removeFirst(x)

3. removeAll(): esta función se usa para eliminar todos los elementos de un conjunto. Toma O(n) tiempo donde n es el tamaño del conjunto.

Sintaxis: 

miConjunto.removeAll()

4. contiene (x): esta función se utiliza para verificar si el elemento x está presente en el conjunto o no. Toma O(1) tiempo por operación. Devolverá verdadero si x está presente en el conjunto, de lo contrario, devolverá falso si x no está presente en el conjunto.

Sintaxis: 

miConjunto.contiene(x)

5. contar: se utiliza para encontrar el número de elementos presentes en un conjunto. Toma O(1) tiempo por operación. Por ejemplo, se nos da un conjunto, mySet = {1, 4, 5, 7, 5}. El recuento de mySet sería igual a 4. Siempre devolverá un número entero no negativo.

Sintaxis: 

mySet.count

6. isEmpty: devuelve verdadero si un conjunto está vacío; de lo contrario, devuelve falso. Toma O(1) tiempo por operación. Devolverá verdadero si mySet está vacío; de lo contrario, devolverá false si mySet no está vacío.

Sintaxis: 

miConjunto.estáVacío

7. sorted(): esta función organiza temporalmente los elementos del conjunto en orden ordenado. Por temporalmente, queremos decir que después de esta operación, el conjunto se ordena de nuevo en orden aleatorio. Toma un tiempo O(n log n), donde n es la longitud del conjunto.

Sintaxis: 

miConjunto.ordenado()

8. firstIndex(x): este método se utiliza para obtener el valor hash del índice del elemento x. Toma O (1) tiempo por operación.

Sintaxis: 

primerÍndice(x)

9. randomElement()!: Devuelve un elemento aleatorio del conjunto. Toma el tiempo O(1) solo si la colección se ajusta a RandomAccessCollection; de lo contrario, toma el tiempo O(n), donde n es la longitud de la colección.

Sintaxis: 

miConjunto.ElementoAleatorio()!

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *