Sobes.tech
Junior

Aký je rozdiel medzi kolekciami a poliami?

sobes.tech AI

Odpoveď od AI

V jazyku Swift neexistuje samostatný typ "kolekcie". Existuje protokol Collection, ktorému zodpovedajú rôzne typy, vrátane Array, Set a Dictionary.

Hlavné rozdiely medzi Array a ďalšími typmi, ktoré spĺňajú protokol Collection:

  1. Poradie prvkov:

    • Array: Usporiadaná kolekcia. Prvky sú uložené v určitej poradí a sú prístupné pomocou indexu.
    • Set: Neusporiadaná kolekcia jedinečných prvkov.
    • Dictionary: Neusporiadaná kolekcia párov "kľúč-hodnota".
  2. Prístup podľa indexu:

    • Array: Podporuje prístup k prvkom pomocou celého čísla indexu.
    • Set: Nepodporuje priame prístupovanie podľa indexu.
    • Dictionary: Prístup k hodnotám sa vykonáva pomocou kľúča.
  3. Jedinečnosť prvkov:

    • Array: Môže obsahovať duplikáty.
    • Set: Obsahuje iba jedinečné prvky.
    • Dictionary: Kľúče musia byť jedinečné, hodnoty sa môžu opakovať.
  4. Výkon:

    • Prístup podľa indexu v Array je zvyčajne rýchlejší (priemerne O(1)).
    • Vyhľadávanie prvku v Set alebo podľa kľúča v Dictionary je zvyčajne rýchlejšie (priemerne O(1)) v porovnaní s vyhľadávaním v Array (O(n)).

Príklad použitia Array:

// Vytvorenie poľa reťazcov
var names: [String] = ["Alice", "Bob", "Charlie"]

// Prístup k prvku pomocou indexu
let firstPerson = names[0] // "Alice"

// Pridanie prvku
names.append("David") // ["Alice", "Bob", "Charlie", "David"]

Príklad použitia Set:

// Vytvorenie množiny celých čísel
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - duplikát odstránený

// Kontrola, či obsahuje prvok
let containsThree = uniqueNumbers.contains(3) // true

Príklad použitia Dictionary:

// Vytvorenie slovníka "meno - vek"
var ages: [String: Int] = ["Alice": 30, "Bob": 25]

// Prístup k hodnote pomocou kľúča
let aliceAge = ages["Alice"] // 30

// Pridanie novej dvojice
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]