HashMap va TreeMap oʻrtasidagi farq

Mundarija:

HashMap va TreeMap oʻrtasidagi farq
HashMap va TreeMap oʻrtasidagi farq

Video: HashMap va TreeMap oʻrtasidagi farq

Video: HashMap va TreeMap oʻrtasidagi farq
Video: Карты отображений в Java. HashTable, TreeMap, HashMap. Java Professional. Урок 3 2024, Noyabr
Anonim

Asosiy farq – HashMap va TreeMap

Dasturlashda ma'lumotlarni yig'ishning turli mexanizmlari mavjud. To'plamlar ma'lumotlarni saqlash usullaridan biridir. Java kabi dasturlash tillari to'plamlardan foydalanadi. Bu ma'lumotlar elementlari to'plamini saqlash va boshqarish uchun sinflar va interfeyslarga ega bo'lgan ramka. Oddiy massivda saqlash uchun ma'lum miqdordagi elementlar mavjud. Bu massivlarning cheklanishi. Buning o'rniga dasturchi to'plamlardan foydalanishi mumkin. To'plamlar yordamida kiritish, o'chirish, saralash va qidirish kabi operatsiyalarni bajarish mumkin. Java-da Map interfeysi to'plamlarga tegishli. Xarita kalit, qiymat juftliklarida ma'lumotlarni ko'rsatish uchun ishlatiladi. Faqat noyob kalitlar mavjud va ularning har biri tegishli qiymatga ega. HashMap va TreeMap Map interfeysini amalga oshiradigan sinflardir. HashMap - bu ma'lumotlar elementlarida ma'lum bir tartibni saqlamaydigan kalit va qiymat juftlarini saqlash uchun ishlatiladigan Xaritaga asoslangan yig'ish sinfidir. TreeMap - bu ma'lumotlar elementlarining o'sish tartibini saqlaydigan kalit va qiymat juftlarini saqlash uchun ishlatiladigan Xaritaga asoslangan yig'ish sinfidir. HashMap va TreeMap o'rtasidagi asosiy farq shundaki, HashMap ma'lumotlar elementlarida ma'lum tartibni saqlamaydi, TreeMap esa ma'lumotlar elementlarining o'sish tartibini saqlaydi.

HashMap nima?

HashMap - bu xarita interfeysini amalga oshiradigan sinf. U AbstractMap sinfini kengaytiradi va Map interfeysini amalga oshiradi. HashMap kalit, qiymat juftlarini o'z ichiga oladi. Har bir element o'ziga xosdir. Kalit yordamida HashMap-dagi elementlarni topish oson. HashMapni e'lon qilish quyidagicha.

ommaviy sinf HashMap kengaytiriladi AbstractMap ilovalari Map, Clone, Serializable

K kalitga ishora qiladi, V esa ushbu maxsus kalitga mos keladigan qiymatga ishora qiladi. Har bir kalit, qiymat juftligi HashMap yozuvidir.

HashMap va TreeMap o'rtasidagi farq
HashMap va TreeMap o'rtasidagi farq

01-rasm: Xarita interfeysi

HaspMapni tushunish uchun quyidagi stsenariyni qabul qiling. Agar u erda dasturchi talaba ismlari to'plamini va tegishli indeks raqamlarini saqlamoqchi bo'lsa, u HashMap-dan foydalanishi mumkin. Indeks raqamlarini topish uchun talaba ismlaridan foydalaniladi. Shuning uchun talaba ismlari kalit, indeks raqamlari esa qiymat hisoblanadi.

HashMap va TreeMap o'rtasidagi farq _02-rasm
HashMap va TreeMap o'rtasidagi farq _02-rasm

02-rasm: Java yordamida HashMap dasturi

Yuqoridagi dasturga muvofiq HashMap ob'ekti yaratilgan. Keyin dasturchi ushbu ob'ekt yordamida elementlarni qo'shishi mumkin. Qiymatlarni qo'yish usuli yordamida kiritish mumkin. Qiymatlarni olish uchun dasturchi kalit bilan get usulidan foydalanishi kerak. studentList.get("150") dan foydalanilganda; u Ann bo'lgan indeksga mos keladigan nomni chop etadi. Agar dasturchi barcha qiymatlarni olishni istasa, u Map. Entry dan foydalanib barcha kalit va qiymatlarni chop etishi mumkin. Chiqishni kuzatayotganda, HashMap ma'lum bir tartibni saqlamasligini ko'rish mumkin. Elementlarni kiritilgan tartibda chop etmaydi. Elementlar tasodifiy tartibda chop etiladi.

TreeMap nima?

TreeMap Java tilidagi sinf boʻlib, Map interfeysini amalga oshiradi. HashMap-ga o'xshab, u kalit, qiymat juftlarini saqlash uchun ham ishlatiladi, lekin o'sish tartibida. TreeMap NavigableMap-ni amalga oshiradi va NavigableMap SortedMap-ni kengaytiradi va SortedMap xaritani kengaytiradi. Har bir element o'ziga xosdir. TreeMapni e'lon qilish quyidagicha.

ommaviy sinf TreeMap AbstractMap-ni kengaytiradi Navigatsiya qilinadigan xarita, klonlanadigan, seriyalilashtiriladi

K kalitga ishora qiladi, V esa ushbu maxsus kalitga mos keladigan qiymatga ishora qiladi. Har bir kalit, qiymat juftligi TreeMap yozuvidir.

HashMap va TreeMap o'rtasidagi asosiy farq
HashMap va TreeMap o'rtasidagi asosiy farq

03-rasm: Java yordamida TreeMap dasturi

Yuqoridagi dasturga muvofiq TreeMap ob'ekti yaratilgan. Keyin dasturchi ushbu ob'ekt yordamida elementlarni qo'shishi mumkin. Qiymatlarni qo'yish usuli yordamida kiritish mumkin. Qiymatlarni olish uchun dasturchi kalit bilan get usulidan foydalanishi kerak. studentList.get("150") dan foydalanilganda; u Ann bo'lgan indeksga mos keladigan nomni chop etadi. Agar dasturchi barcha qiymatlarni olishni istasa, u Map. Entry dan foydalanib barcha kalit va qiymatlarni chop etishi mumkin. Chiqishni kuzatishda TreeMap ma'lum bir tartibni saqlab turishini ko'rish mumkin. Elementlar o'sish tartibida chop etilgan.

HashMap va TreeMap oʻrtasidagi oʻxshashliklar qanday?

  • HashMap ham, TreeMap ham Xarita interfeysini amalga oshiradi.
  • HashMap ham, TreeMap ham koʻplab elementlarni saqlashi va boshqarishi mumkin.
  • HashMap ham, TreeMap ham kalit va qiymat juftlarini oʻz ichiga oladi.
  • HashMap ham, TreeMap ham koʻp null qiymatlarga ega boʻlishi mumkin.
  • HashMap va TreeMapda saqlanishi mumkin boʻlgan elementlar soniga hech qanday cheklov yoʻq.

HashMap va TreeMap oʻrtasidagi farq nima?

HashMap va TreeMap

XeshMap – bu maʼlumotlar elementlarida maʼlum tartibni saqlamaydigan kalit va qiymat juftlarini saqlash uchun foydalaniladigan Xaritaga asoslangan yigʻish klassi. TreeMap - bu Xaritaga asoslangan yig'ish klassi bo'lib, u kalit va qiymat juftlarini saqlash uchun ishlatiladi va ma'lumotlar elementlarining o'sish tartibini saqlaydi.
Buyurtma
HashMap tartibni saqlamaydi. Daraxt xaritasi oʻsish tartibini saqlaydi.
Null kalit
HashMapda bitta null kalit boʻlishi mumkin. Daraxt xaritasida null kalit boʻlishi mumkin emas.
Ishlash
HashMap TreeMap-dan tezroq. TreeMap HashMapga qaraganda sekinroq.

Xulosa – HashMap va TreeMap

Java kabi dasturlash tillari toʻplam ramkasini oʻz ichiga oladi. Massivlarda ma'lum miqdordagi elementlar bo'lishi mumkin. Shuning uchun, massiv hajmi boshida ishga tushirilishi kerak. To'plamlarda dasturchi kerak bo'lganda ko'plab elementlarni saqlashi mumkin. Saqlash uchun aniq miqdor yo'q. Xarita to'plam ramkasiga tegishli interfeysdir. HashMap - bu ma'lumotlar elementlarida ma'lum bir tartibni saqlamaydigan kalit va qiymat juftlarini saqlash uchun ishlatiladigan Xaritaga asoslangan yig'ish sinfidir. TreeMap - bu xaritaga asoslangan yig'ish klassi bo'lib, u kalit va qiymat juftlarini saqlash uchun ishlatiladi va ma'lumotlar elementlarining o'sish tartibini saqlaydi. Ushbu maqola HashMap va Map interfeysini amalga oshiradigan TreeMap o'rtasidagi farqni muhokama qildi. HashMap va TreeMap o'rtasidagi farq shundaki, HashMap ma'lumotlar elementlarida ma'lum tartibni saqlamaydi, TreeMap esa ma'lumotlar elementlarining o'sish tartibini saqlaydi.

Tavsiya: