Junior
Кай вақт бояд Set-ро ба ҷои Array истифода баред?
sobes.tech AI
Ҷавоб аз AI
Set-и бояд истифода шавад дар ҳолатҳои зерин:
- Ниёз аст, ки танҳо уникодҳои элементҳоро нигоҳ доред.
Setавтоматӣ таъмин мекунад, ки ҳар як элемент дар коллексия на бештар аз як маротиба вуҷуд дорад. - Самаранокии баланд дар санҷиши мавҷудияти элемент. Амалиёти
contains(_:)дарSetдорои мураккабии амортизатсияшудаи O(1) дар миёна аст, дар ҳоле ки дарArrayин O(n) аст. - Тартиби элементҳо муҳим нест. Баръакс ба
Array,Setтартиби муайянро дар вақти ҳисоббаробаркунӣ кафолат намедиҳад. - Оператсияҳои зуд-зуд илова кардан, тоза кардан ва санҷиши мавҷудият. Ин амалҳо дар
Setодатан самараноктар азArrayбарои коллексияҳои калон мебошанд, агар тартиб муҳим набошад ва талаботи ягонагӣ вуҷуд дошта бошад.
Намунаи код, ки фарқиятро дар ҷустуҷӯ нишон медиҳад:
// Array
let array = [1, 2, 3, 4, 5]
let element = 5
// Ҷустуҷӯ дар Array - ҷустуҷӯи хаттӣ (O(n))
let isPresentInArray = array.contains(element)
// Set
let set: Set = [1, 2, 3, 4, 5]
// Ҷустуҷӯ дар Set - hashing (дар миёна O(1))
let isPresentInSet = set.contains(element)