Junior
Dart-ში 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 (სწრაფი ძიება)