Junior — Middle
Чӣ гуна роҳҳои иҷрои интерфейси Set дар Kotlin дастрасанд ва онҳо чӣ фарқият доранд?
sobes.tech AI
Ҷавоб аз AI
Дар Kotlin интерфейси Set амалишудаи чанд роҳ дорад, ки дар мутобиқат ва иҷрои дохилӣ фарқ мекунанд:
- Set — ин интерфейс барои маҷмӯаи бетағйир (фақат барои хондан). Он амалҳоро барои хондан таъмин мекунад, аммо барои тағир додан не.
- MutableSet — Set-ро васеъ мекунад ва усулҳоро барои тағир додани маҷмӯа (илова кардан, хориҷ кардани унсурҳо) илова мекунад.
Иҷроиҳо:
- HashSet — асос ёфта дар рӯйхати ҳеш, дастрасии зуд ва амалҳои илова кардан/хориҷ карданро таъмин мекунад. Тартиби унсурҳо кафолат дода намешавад.
- LinkedHashSet — аз HashSet мерос мегирад, тартиби воридшавии унсурҳоро нигоҳ медорад.
- SortedSet / TreeSet (аз тариқи Java) — маҷмӯа, ки унсурҳои он ба тартиби табиӣ ё бо истифода аз муқоисакунанда тартиб дода шудаанд.
Масалан:
val readOnlySet: Set<Int> = setOf(1, 2, 3)
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)
mutableSet.add(4) // иҷозат дода шудааст
// readOnlySet.add(4) // хатои компилятсия
Аз ин рӯ, интихоби иҷрои ба талабот оид ба тағирнопазирӣ ва тартиби унсурҳо вобаста аст.