Junior
HashMap və LinkedList arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
- HashMap ("açar-qiymət" cədvəli) əlaqəli massivdir.
- Elementlərə giriş, əlavə və silmə orta hesabla O(1) mürəkkəbliyə malikdir.
- Elementlərin sırası təmin edilmir.
- Tez axtarış üçün hashing istifadə edir.
// HashMap nümunəsi
import 'dart:collection';
void main() {
final HashMap<String, int> inventar = HashMap();
inventar['alma'] = 5;
inventar['banan'] = 10;
print(inventar['alma']); // 5 göstərəcək
}
- Bağlı siyahı həyata keçirir.
- İndeksə görə elementə giriş O(n) mürəkkəbliyə malikdir.
- Siyahının başlanğıcına və sonuna element əlavə etmək və silmək O(1) mürəkkəbliyə malikdir.
- Hər hansı yerdə element əlavə və silmək üçün səmərəlidir (əgər düyünə istinad məlumdursa) və O(1) mürəkkəbliyə malikdir.
- Elementləri əlavə etmək və silmək üçün düyünlərə istinadları saxlayır (
LinkedListEntry), bu da O(1) təmin edir. - Elementlərin sırası əlavə olunma sırasına uyğundur.
// LinkedList nümunəsi
import 'dart:collection';
void main() {
final LinkedList<String> alış-verişListesi = LinkedList();
alış-verişListesi.addFirst(LinkedListEntry('Süt'));
alış-verişListesi.add(LinkedListEntry('Çörək')); // sona əlavə edir
print(alış-verişListesi.first); // Süt göstərəcək
print(alış-verişListesi.where((entry) => entry.element == 'Çörək').first.element); // Giriş nümunəsi, optimal deyil
}
// LinkedListEntry nümunəsi
class LinkedListEntry<T> extends LinkedListEntry<LinkedListEntry> {
final T data;
LinkedListEntry(this.data);
@override
String toString() => data.toString();
}
| Xüsusiyyət | HashMap | LinkedList |
|---|---|---|
| Məlumat strukturu | Asosiativ massiv | Bağlı siyahı |
| Saxlama | Açar-dəyər cütləri | Düyünlər (elementlər) |
| İndeksə görə giriş | Birbaşa dəstəklənmir | O(n) |
| Açarla giriş | O(1) (orta hesabla) | Dəstəklənmir |
| Əlavə/Silme | O(1) (orta hesabla) | O(1) (başlanğıc/son), O(1) (düyünə istinadla) |
| Elementlərin sırası | Garantili deyil | Əlavə olunma sırasını saxlayır |
| Yaddaş istifadəsi | Hashing səbəbindən daha çox | Kiçik düyünlər üçün azdır |
| Əsas məqsəd | Açar ilə sürətli axtarış | Başlanğıc/son/istənilən yerdə effektiv əməliyyatlar (düyünə istinadla) |