Un Set es una colección de elementos con las siguientes propiedades:
Créalos con el constructor Set(), usando cualquier iterador como parámetro.
julia> s1 = Set(1:4)
Set{Int64} with 4 elements:
4
2
3
1
Añade elementos nuevos con push!() (igual que con los arrays) y elimínalos con delete!().
julia> push!(s1, 5)
Set{Int64} with 5 elements:
5
4
2
3
1
# Duplicates are ignored
julia> push!(s1, 3)
Set{Int64} with 5 elements:
5
4
2
3
1
julia> delete!(s1, 5)
Set{Int64} with 4 elements:
4
2
3
1
julia> length(s1) # length counts entries, despite the non-sequential type
4
Al igual que con otros tipos de colecciones, comprueba la pertenencia con el operador in o ∈ (escribe \in y luego tabulador para obtener el símbolo).
julia> 3 ∈ s1
true
Se admiten las siguientes operaciones sobre pares de conjuntos (los atajos al símbolo del operador se muestran entre paréntesis).
union(A, B) o A ∪ B (\cup): todas las entradas que están en A, en B o en ambos.intersect(A, B) o A ∩ B (\cap): todas las entradas comunes a A y B.setdiff(A, B) (sin símbolo): las entradas que están en A pero no en B.symdiff(A, B) (sin símbolo): las entradas que están en A o en B, pero no en ambos.issubset(A, B) o A ⊆ B (\subseteq) o B ⊇ A (\supseteq): true si todas las entradas de A están también en B.issetequal(A, B) (sin símbolo): true si A y B contienen exactamente las mismas entradas.isdisjoint(A, B) (sin símbolo): true si A y B no tienen ninguna entrada en común (por lo que la intersección está vacía).s1 = Set(1:4)
s2 = Set(3:6)
julia> s1 ∪ s2 # union
Set{Int64} with 6 elements:
5
4
6
2
3
1
julia> s1 ∩ s2 # intersect
Set{Int64} with 2 elements:
4
3
julia> setdiff(s1, s2)
Set{Int64} with 2 elements:
2
1
julia> symdiff(s1, s2)
Set{Int64} with 4 elements:
5
6
2
1
julia> s1 ⊇ s2 # issubset
false
También hay versiones mutables de muchas de estas operaciones, con un ! añadido al nombre de la función.
Consulta el manual para ver la lista completa de funciones.