Swift Academy · Lektion

Valg mellem array, dictionary og set

Forstå ydeevneegenskaberne, og vælg den rette collection-type til hver situation.

Lektion 4 af 412 trin

Valg mellem array, dictionary og set er en gratis Swift Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Swift Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Swift Academy-kurset indeholder 4 lektioner i alt.

Velkommen

Swifts tre indbyggede samlingstyper — Array, Dictionary og Set — har hver deres styrker. Valget af den rigtige type påvirker både korrekthed og ydeevne.

Array: Ordnet sekvens

Brug `Array`, når: • Rækkefølgen er vigtig • Du har brug for tilfældig indeksadgang i `O(1)` • Dubletter er tilladt • Du gennemløber sekventielt ```swift let steps = ["boil","add tea","steep","drink"] ```

Dictionary: Opslag med nøgle og værdi

Brug `Dictionary`, når: • Du har brug for opslag i O(1) via en unik nøgle • Data har en naturlig nøgle (bruger-id, konfigurationsnøgle) ```swift var userNames: [Int: String] = [42: "Alice", 7: "Bob"] print(userNames[42]!) // "Alice" ```

Set: Unikt medlemskab

Brug `Set`, når: • Du har brug for medlemskabstest i O(1) • Dubletter skal udelukkes • Rækkefølgen er ligegyldig ```swift var visitedPages: Set = [] visitedPages.insert("/home") print(visitedPages.contains("/home")) // true ```

Ydeevneoversigt

| Handling | Array | Dictionary | Set | |-------------------|-------|------------|-------| | Tilføjelse | O(1)* | O(1)* | O(1)* | | Indeks-/nøgleadgang | O(1) | O(1)* | — | | Søgning | O(n) | O(1)* | O(1)* | | Indsættelse i midten | O(n) | O(1)* | O(1)* | *amortiseret gennemsnit

Når Array er bedre end Set

Små samlinger er ofte bedre med `Array` end `Set` på grund af lavere ekstraomkostninger: ```swift // For 5 items, Array.contains is perfectly fast: let tags = ["swift","ios","mobile"] if tags.contains("swift") { ... } ``` De faste omkostninger ved hashing kan dominere for meget små mængder.

Mønster for en ordnet Dictionary

Når du har brug for opslag med nøgle OG indsættelsesrækkefølge: ```swift // Use an array of tuples or a struct: var ordered: [(key: String, value: Int)] = [] // Or Foundation's NSOrderedDictionary // Or maintain a [Key] array alongside a [Key:Value] dict ```

Mønster for en multimængde

Til optalte dubletter (multimængde) skal du bruge `[T: Int]`: ```swift var frequency: [String: Int] = [:] for word in words { frequency[word, default: 0] += 1 } ```

Uforanderlighed: let kontra var

Alle tre samlingstyper kan med fordel bruge `let` for at sikre uforanderlighed: ```swift let config: [String: String] = ["env": "prod"] let primes: Set = [2,3,5,7,11] let steps: [String] = ["fetch","parse","display"] ``` Uforanderlige samlinger forhindrer utilsigtede ændringer og muliggør compileroptimeringer.

Praktisk beslutningstræ

Spørg: 1. Har jeg brug for ordnet adgang efter position? → Array 2. Har jeg brug for opslag via en unik nøgle? → Dictionary 3. Har jeg brug for hurtig medlemskabstest uden dubletter? → Set 4. Kombination? → Sammensæt, f.eks. `[Key: [Value]]` til grupperede data

Hurtigt tjek

Hvilken samling giver opslag i gennemsnitlig O(1)-tid via en unik nøgle?

Opsummering

Vigtigste pointer: • Array — ordnet, indekseret, tillader dubletter • Dictionary — nøgle-værdi-par, opslag i O(1) • Set — unikke værdier, medlemskab i O(1) • Små samlinger: Array er ofte bedre end Set på grund af hashingomkostninger • Sammensæt samlinger til komplekse datastrukturer Kurset er gennemført! Næste: designmønstre for strukturer.
Gratis at komme i gang

Lær Swift med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
122
Lektioner
409

Ofte stillede spørgsmål

Er lektionen “Valg mellem array, dictionary og set” gratis?

Ja — alle 3 lektioner i læringssporet Swift Academy, inklusive “Valg mellem array, dictionary og set”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Swift Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Valg mellem array, dictionary og set”?

Forstå ydeevneegenskaberne, og vælg den rette collection-type til hver situation. Du øver dig i Swift Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Swift Academy?

Der kræves ingen tidligere erfaring. Swift Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Valg mellem array, dictionary og set”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Swift Academy-lektion?

Ja. Alle Swift Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Dictionary-CRUD og subscript-adgang
  2. Gennemløb og transformering af dictionaries
  3. Set-operationer: Union, snit og differens
  4. Valg mellem array, dictionary og set
← Tilbage til Swift Academy