Junior
Mis vahe on kogumite ja massiivide vahel?
sobes.tech AI
Vastus AI-lt
Swift ei ole eraldi „kogu“ tüüpi. On Collection protokoll, millele vastavad erinevad tüübid, sealhulgas Array, Set ja Dictionary.
Peamised erinevused Array ja teiste Collection protokollile vastavate tüüpide vahel:
-
Elementide järjekord:
Array: järjepidev kogum. Elemente hoitakse kindlas järjekorras ja neile pääseb ligi indeksi kaudu.Set: mittejärjepidev unikaalsete elementide kogum.Dictionary: mittejärjepidev „võti-väärtus“ paaride kogum.
-
Juurdepääs indeksi kaudu:
Array: toetab juurdepääsu elementidele täisarvulise indeksi kaudu.Set: otsejuurdepääs indeksi kaudu ei ole toetatud.Dictionary: juurdepääs väärtustele toimub võtme kaudu.
-
Elementide unikaalsus:
Array: võib sisaldada duplikaate.Set: sisaldab ainult unikaalseid elemente.Dictionary: võtmed peavad olema unikaalsed, väärtused võivad korduda.
-
Tõhusus:
Array-s juurdepääs indeksiga on tavaliselt kiirem (keskmiselt O(1)).SetvõiDictionary-s otsing on tavaliselt kiirem (keskmiselt O(1)) kuiArray-s otsing (O(n)).
Näide Array kasutamisest:
// Loome stringide massiivi
var names: [String] = ["Alice", "Bob", "Charlie"]
// Juurdepääs elemendile indeksiga
let firstPerson = names[0] // "Alice"
// Elementi lisamine
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
Näide Set-i kasutamisest:
// Loome täisarvude kogumi
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - duplikaadid on eemaldatud
// Kontrollime, kas element on olemas
let containsThree = uniqueNumbers.contains(3) // true
Näide Dictionary-ga:
// Loome sõnastiku „nimi - vanus“
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
// Juurdepääs väärtusele võtme kaudu
let aliceAge = ages["Alice"] // 30
// Lisame uue paari
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]