Swift Academy · Lektion

Välj mellan Array, Dictionary och Set

Förstå prestandaegenskaper och välja rätt samlingstyp för varje situation.

Lektion 4 av 412 steg

Välj mellan Array, Dictionary och Set är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 4 lektioner.

Välkommen

Swifts tre inbyggda samlingstyper – Array, Dictionary och Set – har var och en sina styrkor. Valet av rätt typ påverkar både korrekthet och prestanda.

Array: ordnade sekvenser

Använd `Array` när: • Ordningen är viktig • Ni behöver slumpmässig indexåtkomst i `O(1)` • Dubbletter är tillåtna • Ni itererar sekventiellt ```swift let steps = ["boil","add tea","steep","drink"] ```

Dictionary: uppslagning med nyckel och värde

Använd `Dictionary` när: • Ni behöver uppslagning i O(1) med en unik nyckel • Data har en naturlig nyckel (användar-ID, konfigurationsnyckel) ```swift var userNames: [Int: String] = [42: "Alice", 7: "Bob"] print(userNames[42]!) // "Alice" ```

Set: unika värden

Använd `Set` när: • Ni behöver medlemskapstestning i O(1) • Dubbletter måste uteslutas • Ordningen saknar betydelse ```swift var visitedPages: Set = [] visitedPages.insert("/home") print(visitedPages.contains("/home")) // true ```

Sammanfattning av prestanda

| Operation | Array | Dictionary | Set | |-------------------|-------|------------|-------| | Lägga till sist | O(1)* | O(1)* | O(1)* | | Index-/nyckelåtkomst | O(1) | O(1)* | — | | Sökning | O(n) | O(1)* | O(1)* | | Infoga i mitten | O(n) | O(1)* | O(1)* | *amortiserat genomsnitt

När Array är bättre än Set

Små samlingar gynnas ofta av `Array` framför `Set` på grund av lägre overhead: ```swift // For 5 items, Array.contains is perfectly fast: let tags = ["swift","ios","mobile"] if tags.contains("swift") { ... } ``` Den fasta overheaden för hashning kan dominera för mycket små mängder.

Mönster för ordnad Dictionary

När ni behöver både uppslagning med nyckel och insättningsordning: ```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 ```

Multiset-mönster

För räknade dubbletter (multiset) används `[T: Int]`: ```swift var frequency: [String: Int] = [:] for word in words { frequency[word, default: 0] += 1 } ```

Oföränderlighet: let kontra var

Alla tre samlingstyperna drar nytta av `let` för oföränderlighet: ```swift let config: [String: String] = ["env": "prod"] let primes: Set = [2,3,5,7,11] let steps: [String] = ["fetch","parse","display"] ``` Oföränderliga samlingar förhindrar oavsiktliga ändringar och möjliggör optimeringar av kompilatorn.

Praktiskt beslutsträd

Ställ följande frågor: 1. Behöver jag ordnad åtkomst efter position? → Array 2. Behöver jag uppslagning med en unik nyckel? → Dictionary 3. Behöver jag snabb medlemskapstestning utan dubbletter? → Set 4. En kombination? → Kombinera typer: till exempel `[Key: [Value]]` för grupperade data

Snabb kontroll

Vilken samling erbjuder uppslagning i O(1) i genomsnitt med en unik nyckel?

Sammanfattning

Viktigaste punkterna: • Array — ordnad, indexerad och tillåter dubbletter • Dictionary — nyckel-värde-par och uppslagning i O(1) • Set — unika värden och medlemskapstestning i O(1) • Små samlingar: Array vinner ofta över Set på grund av hashningens overhead • Kombinera samlingar för komplexa datastrukturer Kursen är klar! Nästa: designmönster för structs.
Gratis att börja

Lär dig Swift med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
122
Lektioner
409

Vanliga frågor

Är lektionen ”Välj mellan Array, Dictionary och Set” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Välj mellan Array, Dictionary och Set”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Välj mellan Array, Dictionary och Set”?

Förstå prestandaegenskaper och välja rätt samlingstyp för varje situation. Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Swift Academy?

Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Välj mellan Array, Dictionary och Set”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Swift Academy-lektionen?

Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. CRUD och subscript-åtkomst för dictionaries
  2. Iterera över och omforma dictionaries
  3. Mängdoperationer: union, snitt och differens
  4. Välj mellan Array, Dictionary och Set
← Tillbaka till Swift Academy