Junior
Дартида List ва Set байни чӣ фарқият дорад?
sobes.tech AI
Ҷавоб аз AI
Асосӣ фарқиятҳо:
- Мазмун: List метавонад такрорӣ дошта бошад, Set танҳо уник ё элементҳоро нигоҳ медорад.
- Тартиб: List тартиби илова кардани элементҳоро нигоҳ медорад, Set тартибро кафолат намедиҳад.
- Иҷро:
- Илова/баровардан: Дар миёна, амали илова кардан/баровардан дар Set тезтар аст (O(1)) бо сабаби истифодаи hashing. Барои List, ин амалҳо метавонанд нисбатан оҳистатар бошанд (то O(n)) вобаста ба ҷойгиршавӣ.
- Ҷустуҷӯ: Дар Set, ҷустуҷӯи элемент ба қимат тезтар аст (O(1) миёна), ҳамчунин бо сабаби hashing. Дар List, ҷустуҷӯи қимат талаб мекунад, ки рӯйхатро гузарад (O(n)). Дастрасӣ ба элемент тавассути индекс дар List зуд аст (O(1)).
Маслиҳатҳо:
// List - иҷозат медиҳад такрорӣ, тартибро нигоҳ медорад
List<int> numbersList = [1, 2, 2, 3, 1];
print(numbersList); // Натиҷа: [1, 2, 2, 3, 1]
print(numbersList[0]); // Натиҷа: 1 (дар дастрасӣ тавассути индекс)
// Set - танҳо уник ё элементҳо, тартиб кафолат намешавад
Set<int> numbersSet = {1, 2, 2, 3, 1};
print(numbersSet); // Натиҷа: {1, 2, 3} (тартиб метавонад тағйир ёбад)
// print(numbersSet[0]); // Хатогӣ: Set дастгирӣ намекунад дастрасӣ тавассути индекс
print(numbersSet.contains(2)); // Натиҷа: true (ҷустуҷӯи тез)