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