TreeSet va HashSet o'rtasidagi farq

Mundarija:

TreeSet va HashSet o'rtasidagi farq
TreeSet va HashSet o'rtasidagi farq

Video: TreeSet va HashSet o'rtasidagi farq

Video: TreeSet va HashSet o'rtasidagi farq
Video: Set and HashSet in Java - Full Tutorial 2024, Noyabr
Anonim

Asosiy farq – TreeSet va HashSet

Koʻpchilik dasturlash tillari massivlarni qoʻllab-quvvatlaydi. Bu bir xil turdagi ma'lumotlarning bir nechta elementlarini saqlash uchun ishlatiladigan ma'lumotlar tuzilmasi. Agar oltita element uchun massiv e'lon qilingan bo'lsa, uni o'nta elementni saqlash uchun ishlatib bo'lmaydi. Shuning uchun massivlar dinamik emas va massiv e'lon qilingandan keyin uning hajmini o'zgartira olmaydi. Java kabi dasturlash tillari ma'lumotlarni dinamik saqlash uchun foydalaniladigan To'plamlarni qo'llab-quvvatlaydi. To'plamlar elementlarni qo'shish va elementlarni o'chirish kabi operatsiyalarni qo'llab-quvvatlaydi. To'plam ierarxiyasida bir qator interfeyslar va sinflar mavjud. Asosiy interfeys - Collection interfeysi. Set - bu Collection interfeysini kengaytiruvchi interfeys. Bu takrorlashga yo'l qo'ymaydi. TreeSet va HashSet Collection ierarxiyasidagi ikkita sinf bo'lib, ikkalasi ham Set interfeysini amalga oshiradi. TreeSet - bu Set interfeysini amalga oshiradigan sinf bo'lib, u noyob elementlarni o'sish tartibida saqlash uchun ishlatiladi. HashSet - bu Set interfeysini amalga oshiradigan sinf va u Hashing mexanizmi yordamida noyob elementlarni saqlash uchun ishlatiladi. TreeSet va HashSet o'rtasidagi asosiy farq shundaki, TreeSet elementlarni o'sish tartibida saqlaydi, HashSet esa elementlarni o'sish tartibida saqlamaydi. TreeSet ham, HashSet ham faqat noyob elementlarni saqlaydi.

Daraxtlar toʻplami nima?

TreeSet klassi NavigableSet interfeysini amalga oshiradi. NavigableSet interfeysi SortedSet, Set, Collection va Iterable interfeyslarini ierarxik tartibda kengaytiradi. TreeSet har doim o'sish tartibini saqlaydi. Agar elementlar B, A, C tartibida kiritilgan bo'lsa, ular A, B, C sifatida saqlanadi. Qo'shish (), olib tashlash () kabi usullardan TreeSet obyekti bilan foydalanish mumkin. Qo'shish usuli element qo'shish uchun ishlatilishi mumkin. Olib tashlash usuli to'plamdan elementni olib tashlash uchun ishlatiladi. Bu TreeSet bilan ishlatilishi mumkin bo'lgan ba'zi usullar.

TreeSet va HashSet o'rtasidagi farq
TreeSet va HashSet o'rtasidagi farq

01-rasm: TreeSet bilan dastur

Yuqoridagi dasturga muvofiq TreeSet tipidagi obyekt yaratilgan. Ma'lumotlar satr elementlari ushbu ob'ektga add usuli yordamida qo'shiladi. Kiritilgan ma'lumotlar tartibi A, D, A, B, C, D. Iterator yordamida saqlangan qiymatlar ekranga chop etiladi. Chiqish A, B, C, D. Ikkita A harfi va ikkita D harfi boʻlsa ham, chiqishda bittadan A va bitta D harfi koʻrsatiladi. Shuning uchun TreeSet noyob elementlarni saqlaydi. Qo'shishning aniq tartibi yo'q, lekin chiqishni kuzatishda TreeSet elementlarning o'sish tartibini saqlab turishini ko'rish mumkin.

XeshSet nima?

HashSet klassi Set interfeysini amalga oshiradigan AbstractSet sinfini kengaytiradi. Set interfeysi ierarxik tartibda Collection va Iterable interfeyslarini meros qilib oladi. HashSet-da elementlarning o'sish tartibini va kiritilgan tartibni saqlab turishiga kafolat yo'q. Agar kiritilgan tartib A, B, C boʻlsa, qiymatlar C, A, B koʻrinishida saqlanishi mumkin. Saqlash tartibi A, B, C ham boʻlishi mumkin, lekin kiritilgan tartib yoki oʻsish tartibi saqlanishiga kafolat yoʻq.

TreeSet va HashSet o'rtasidagi asosiy farq
TreeSet va HashSet o'rtasidagi asosiy farq

02-rasm: HashSet bilan dastur

Yuqoridagi dasturga muvofiq HashSet tipidagi obyekt yaratilgan. Ma'lumotlar satr elementlari ushbu ob'ektga add usuli yordamida qo'shiladi. Kiritilgan ma'lumotlar tartibi L, R, M, M, R, L. Iterator yordamida saqlangan qiymatlar ekranga chop etiladi. Chiqish R L M. Har birida ikkitadan L, R va M harflari mavjud bo'lsa ham, har biridan faqat bitta harf ko'rsatiladi. Shuning uchun, HashSet noyob elementlarni saqlaydi. Chiqishni kuzatayotganda, o'sish tartibi yo'qligini yoki kiritilgan tartib saqlanganligini ko'rish mumkin.

TreeSet va HashSet oʻrtasidagi oʻxshashliklar qanday?

  • TreeSet ham, HashSet ham sinflar toʻplam ierarxiyasiga tegishli.
  • TreeSet ham, HashSet ham faqat noyob elementlarni saqlaydi.
  • TreeSet ham, HashSet ham koʻp elementlarni saqlash va boshqarish uchun ishlatilishi mumkin.
  • TreeSet ham, HashSet ham kiritilgan tartibni saqlamaydi.

TreeSet va HashSet oʻrtasidagi farq nima?

TreeSet va HashSet

TreeSet kolleksiya ierarxiyasidagi sinf boʻlib, u noyob elementlarni oʻsish tartibida saqlash uchun ishlatiladi. HashSet toʻplam ierarxiyasidagi sinf boʻlib, u Xeshlash mexanizmi yordamida noyob elementlarni saqlash uchun ishlatiladi.
Elementlarni saqlash
TreeSet elementlarni oʻsish tartibida saqlaydi. HashSet elementlarni oʻsish tartibida saqlamaydi.

Xulosa – TreeSet va HashSet

Dasturlashda ma'lumotlar elementlarini dinamik saqlash talab qilinadi. Java kabi dasturlash tillari ushbu vazifani bajarish uchun Collections-ni qo'llab-quvvatlaydi. To'plam ierarxiyasida bir qator interfeyslar va sinflar mavjud. TreeSet va HashSet Collection ierarxiyasidagi ikkita sinfdir. Ikkalasi ham Set interfeysini amalga oshiradi. TreeSet - bu Set interfeysini amalga oshiradigan sinf bo'lib, u noyob elementlarni o'sish tartibida saqlash uchun ishlatiladi. HashSet - bu Set interfeysini amalga oshiradigan sinf va u Hashing mexanizmi yordamida noyob elementlarni saqlash uchun ishlatiladi. TreeSet va HashSet o'rtasidagi farq shundaki, TreeSet elementlarni o'sish tartibida saqlaydi, HashSet esa elementlarni o'sish tartibida saqlamaydi. Ushbu maqola TreeSet va HashSet o'rtasidagi farqni muhokama qildi.

Tavsiya: