Junior
Mi a különbség a gyűjtemények és a tömbök között?
sobes.tech MI
Válasz az MI-től
Swiftben nincs külön "gyűjtemény" típus. Létezik a Collection protokoll, amelyhez különböző típusok tartoznak, beleértve az Array, Set és Dictionary típusokat.
Az Array és más, a Collection protokollt megvalósító típusok közötti fő különbségek:
-
Elemek sorrendje:
Array: Rendezett gyűjtemény. Az elemek meghatározott sorrendben vannak tárolva, és index segítségével érhetők el.Set: Rendezhetetlen, egyedi elemek gyűjteménye.Dictionary: Rendezhetetlen, "kulcs-érték" párok gyűjteménye.
-
Hozzáférés index szerint:
Array: Támogatja az elemekhez való hozzáférést egész számú index segítségével.Set: Nem támogatja az egyenes index szerinti hozzáférést.Dictionary: A értékekhez a kulcs segítségével férhetünk hozzá.
-
Az elemek egyedisége:
Array: Tartalmazhat duplikált elemeket.Set: Csak egyedi elemeket tartalmaz.Dictionary: A kulcsoknak egyedinek kell lenniük, a értékek ismétlődhetnek.
-
Teljesítmény:
- Az index szerinti hozzáférés az
Array-ben általában gyorsabb (átlagosan O(1)). - Az elem keresése
Set-ben vagy a kulcs szerinti keresésDictionary-ben általában gyorsabb (átlagosan O(1)), mint azArray-ben (O(n)).
- Az index szerinti hozzáférés az
Példa az Array használatára:
// Stringekből álló tömb létrehozása
var names: [String] = ["Alice", "Bob", "Charlie"]
// Elem elérése index segítségével
let firstPerson = names[0] // "Alice"
// Elem hozzáadása
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
Példa a Set használatára:
// Egész számokból álló halmaz létrehozása
var uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4] // {1, 2, 3, 4} - duplikátum eltávolítva
// Elem létezésének ellenőrzése
let containsThree = uniqueNumbers.contains(3) // true
Példa a Dictionary használatára:
// "név - életkor" szótár létrehozása
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
// Érték elérése kulcs segítségével
let aliceAge = ages["Alice"] // 30
// Új pár hozzáadása
ages["Charlie"] = 35 // ["Alice": 30, "Bob": 25, "Charlie": 35]