A Set olyan gyűjtemény, amely a következő tulajdonságokkal rendelkezik:
Létrehozásukhoz a Set() konstruktort használd, paraméterként bármilyen iterátort megadva.
julia> s1 = Set(1:4)
Set{Int64} with 4 elements:
4
2
3
1
Új elemeket a push!() függvénnyel adhatsz hozzá (ugyanúgy, mint a tömböknél), törölni pedig a delete!() függvénnyel tudsz.
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
Ahogy több más gyűjteménytípusnál is, a tagságot az in vagy a ∈ operátorral ellenőrizheted (a szimbólumhoz írd be, hogy \in, majd nyomj tabot).
julia> 3 ∈ s1
true
A következő, halmazpárokon végzett műveletek támogatottak (az operátorszimbólum beírásához tartozó gyorsbillentyűk zárójelben szerepelnek).
union(A, B) vagy A ∪ B (\cup): minden elem, amely A-ban vagy B-ben vagy mindkettőben benne van.intersect(A, B) vagy A ∩ B (\cap): minden elem, amely A-ban és B-ben is közös.setdiff(A, B) (nincs szimbólum): azok az elemek, amelyek A-ban benne vannak, de B-ben nem.symdiff(A, B) (nincs szimbólum): azok az elemek, amelyek A-ban vagy B-ben benne vannak, de nem mindkettőben.issubset(A, B) vagy A ⊆ B (\subseteq) vagy B ⊇ A (\supseteq): true, ha A minden eleme B-ben is benne van.issetequal(A, B) (nincs szimbólum): true, ha A és B pontosan ugyanazokat az elemeket tartalmazza.isdisjoint(A, B) (nincs szimbólum): true, ha A-nak és B-nek nincs közös eleme (azaz a metszetük üres).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
Ezek közül soknak létezik módosító változata is, amelyeknél a függvénynévhez egy ! kerül.
A függvények teljes listját a kézikönyvben találod.