Junior
HashMap va LinkedList o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
- HashMap (xarita "kalit-qiymat") massivini amalga oshiradi.
- Elementlarga kirish, qo'shish va o'chirish o'rtacha O(1) murakkablikka ega.
- Elementlarning tartibi kafolatlanmaydi.
- Tez qidiruv uchun hashingdan foydalanadi.
// HashMap misoli
import 'dart:collection';
void main() {
final HashMap<String, int> inventar = HashMap();
inventar['olma'] = 5;
inventar['banan'] = 10;
print(inventar['olma']); // 5 ni chiqaradi
}
- Ulangan ro'yxatni amalga oshiradi.
- Indeks bo'yicha kirish O(n) murakkablikka ega.
- Ro'yxat boshiga yoki oxiriga element qo'shish va o'chirish O(1) murakkablikka ega.
- Har qanday joyda element qo'shish/o'chirish uchun samarali (agar tugun referensiyasi bo'lsa) va O(1) murakkablikka ega.
- Elementlarni qo'shish va o'chirish uchun tugunlarga referensiyalarni saqlab qolish (
LinkedListEntry), bu O(1) ni ta'minlaydi. - Elementlarning tartibi qo'shilish tartibiga mos keladi.
// LinkedList misoli
import 'dart:collection';
void main() {
final LinkedList<String> xaridlar = LinkedList();
xaridlar.addFirst(LinkedListEntry('Sut'));
xaridlar.add(LinkedListEntry('Non')); // oxiriga qo'shadi
print(xaridlar.first); // Sut ni chiqaradi
print(xaridlar.where((entry) => entry.element == 'Non').first.element); // Kirish misoli, optimal emas
}
// LinkedListEntry misoli
class LinkedListEntry<T> extends LinkedListEntry<LinkedListEntry> {
final T data;
LinkedListEntry(this.data);
@override
String toString() => data.toString();
}
| Xususiyat | HashMap | LinkedList |
|---|---|---|
| Ma'lumotlar tuzilmasi | Asosiy array (hash jadvali) | Ulangan ro'yxat |
| Saqlash | Kalit-qiymat juftlari | Tugunlar (elementlar) |
| Indeks bo'yicha kirish | To'g'ridan-to'g'ri qo'llab-quvvatlanmaydi | O(n) |
| Kalit bo'yicha kirish | O(1) (o'rtacha) | Qo'llab-quvvatlanmaydi |
| Qo'shish/O'chirish | O(1) (o'rtacha) | O(1) (boshlanish/oxir), O(1) (tugunga referensiya bilan) |
| Elementlarning tartibi | Garantilangan emas | Qo'shilish tartibini saqlaydi |
| Xotira foydalanish | Hashlash sababli ko'proq | Kamroq, agar tugunlar kichik bo'lsa |