TreeSet және HashSet арасындағы айырмашылық

Мазмұны:

TreeSet және HashSet арасындағы айырмашылық
TreeSet және HashSet арасындағы айырмашылық

Бейне: TreeSet және HashSet арасындағы айырмашылық

Бейне: TreeSet және HashSet арасындағы айырмашылық
Бейне: Java Collection Framework . ArrayList vs. HashSet [Performance testing] 2024, Қараша
Anonim

Негізгі айырмашылық – TreeSet пен HashSet

Бағдарламалау тілдерінің көпшілігі массивтерді қолдайды. Бұл бір деректер түрінің бірнеше элементтерін сақтау үшін пайдаланылатын деректер құрылымы. Алты элемент үшін жарияланған массив болса, оны он элементті сақтау үшін пайдалану мүмкін емес. Сондықтан массивтер динамикалық емес және ол жарияланғаннан кейін массив өлшемін өзгерте алмайды. Java сияқты бағдарламалау тілдері деректерді динамикалық түрде сақтау үшін пайдаланылатын Жинақтарды қолдайды. Жинақтар элементтерді қосу және элементтерді жою сияқты әрекеттерді қолдайды. Коллекция иерархиясында бірқатар интерфейстер мен сыныптар бар. Негізгі интерфейс коллекция интерфейсі болып табылады. Жиын – Коллекция интерфейсін кеңейтетін интерфейс. Ол қайталауға жол бермейді. TreeSet және HashSet Жинақ иерархиясындағы екі класс және екеуі де Set интерфейсін жүзеге асырады. TreeSet - Set интерфейсін жүзеге асыратын класс және ол бірегей элементтерді өсу ретімен сақтау үшін пайдаланылады. HashSet - бұл Set интерфейсін жүзеге асыратын класс және ол Хэшинг механизмі арқылы бірегей элементтерді сақтау үшін пайдаланылады. TreeSet пен HashSet арасындағы негізгі айырмашылық TreeSet элементтерді өсу ретімен сақтайды, ал HashSet элементтерді өсу ретімен сақтамайды. TreeSet және HashSet екеуі де бірегей элементтерді ғана сақтайды.

Ағаш жинағы дегеніміз не?

TreeSet класы NavigableSet интерфейсін жүзеге асырады. NavigableSet интерфейсі SortedSet, Set, Collection және Iterable интерфейстерін иерархиялық ретпен кеңейтеді. TreeSet әрқашан өсу ретін сақтайды. Егер элементтер B, A, C ретімен кірістірілсе, олар A, B, C ретінде сақталады. Add (), remove () сияқты әдістерді TreeSet нысанымен пайдалануға болады. Қосу әдісі элементті қосу үшін пайдаланылуы мүмкін. Жою әдісі коллекциядан элементті жою үшін пайдаланылады. Бұл TreeSet көмегімен қолдануға болатын кейбір әдістер.

TreeSet және HashSet арасындағы айырмашылық
TreeSet және HashSet арасындағы айырмашылық

01-сурет: TreeSet бағдарламасы бар бағдарлама

Жоғарыдағы бағдарламаға сәйкес TreeSet типті объект жасалады. Жол деректерінің элементтері қосу әдісі арқылы сол нысанға қосылады. Енгізілген деректер реті: A, D, A, B, C, D. Итератордың көмегімен сақталған мәндер экранға басып шығарылады. Шығыс A, B, C, D. Екі A әрпі және екі D әрпі болса да, шығыс бір A және бір D әрпін көрсетеді. Сондықтан TreeSet бірегей элементтерді сақтайды. Ешқандай нақты кірістіру реті жоқ, бірақ шығысты бақылағанда, TreeSet элементтердің өсу ретін сақтайтынын көруге болады.

Хэштер жинағы дегеніміз не?

HashSet сыныбы Set интерфейсін жүзеге асыратын AbstractSet сыныбын кеңейтеді. Жиын интерфейсі Жинақ және Итерациялық интерфейстерді иерархиялық ретпен иеленеді. HashSet-те элементтердің өсу ретін және енгізілген ретті сақтайтынына кепілдік жоқ. Енгізілген тәртіп A, B, C болса, мәндер C, A, B түрінде сақталуы мүмкін. Сақтау реті де A, B, C болуы мүмкін, бірақ енгізілген реттің немесе өсу ретінің сақталуына кепілдік жоқ.

TreeSet және HashSet арасындағы негізгі айырмашылық
TreeSet және HashSet арасындағы негізгі айырмашылық

02-сурет: HashSet бар бағдарлама

Жоғарыдағы бағдарламаға сәйкес HashSet типті объект жасалады. Жол деректерінің элементтері қосу әдісі арқылы сол нысанға қосылады. Енгізілген деректер реті L, R, M, M, R, L. Итератордың көмегімен сақталған мәндер экранға басып шығарылады. Шығару R L M. Әрқайсысында екі L, R және M әрпі болса да, әрқайсысынан бір ғана әріп көрсетіледі. Сондықтан, HashSet бірегей элементтерді сақтайды. Шығуды бақылаған кезде өсу реті жоқ екенін немесе енгізілген реттің сақталғанын көруге болады.

TreeSet және HashSet арасында қандай ұқсастықтар бар?

  • TreeSet және HashSet екеуі де жинақ иерархиясына жататын сыныптар.
  • TreeSet және HashSet екеуі де бірегей элементтерді ғана сақтайды.
  • TreeSet және HashSet екеуін де көптеген элементтерді сақтау және өңдеу үшін пайдалануға болады.
  • TreeSet және HashSet екеуі де енгізілген ретті сақтамайды.

TreeSet пен HashSet арасындағы айырмашылық неде?

TreeSet және HashSet

TreeSet – бірегей элементтерді өсу ретімен сақтау үшін пайдаланылатын жинақ иерархиясындағы сынып. HashSet - жинақ иерархиясындағы класс, Хэштеу механизмін пайдаланып бірегей элементтерді сақтау үшін пайдаланылады.
Элементтерді сақтау
TreeSet элементтерді өсу ретімен сақтайды. HashSet элементтерді өсу ретімен сақтамайды.

Қорытынды – TreeSet және HashSet

Бағдарламалауда деректер элементтерін динамикалық түрде сақтау қажет. Java сияқты бағдарламалау тілдері осы тапсырманы орындау үшін Collections қолданбасын қолдайды. Коллекция иерархиясында бірқатар интерфейстер мен сыныптар бар. TreeSet және HashSet коллекция иерархиясындағы екі класс болып табылады. Екеуі де Set интерфейсін жүзеге асырады. TreeSet - Set интерфейсін жүзеге асыратын класс және ол бірегей элементтерді өсу ретімен сақтау үшін пайдаланылады. HashSet - бұл Set интерфейсін жүзеге асыратын класс және ол Хэшинг механизмі арқылы бірегей элементтерді сақтау үшін пайдаланылады. TreeSet пен HashSet арасындағы айырмашылық TreeSet элементтерді өсу ретімен сақтайды, ал HashSet элементтерді өсу ретімен сақтамайды. Бұл мақалада TreeSet пен HashSet арасындағы айырмашылық талқыланды.

Ұсынылған: