Sobes.tech
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:

  1. 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.
  2. 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.
  3. Elementide unikaalsus:

    • Array: võib sisaldada duplikaate.
    • Set: sisaldab ainult unikaalseid elemente.
    • Dictionary: võtmed peavad olema unikaalsed, väärtused võivad korduda.
  4. Tõhusus:

    • Array-s juurdepääs indeksiga on tavaliselt kiirem (keskmiselt O(1)).
    • Set või Dictionary-s otsing on tavaliselt kiirem (keskmiselt O(1)) kui Array-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]