Sobes.tech
Junior

HashMap və LinkedList arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

HashMap

  • 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
}

LinkedList

  • 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)