Негизги айырма – TreeSet жана HashSet
Көпчүлүк программалоо тилдери Массивдерди колдойт. Бул бир эле типтеги бир нече элементтерди сактоо үчүн колдонулган маалымат структурасы. Эгерде алты элемент үчүн жарыяланган массив бар болсо, анда аны он элементти сактоо үчүн колдонууга болбойт. Демек, массивдер динамикалык эмес жана массив жарыялангандан кийин анын өлчөмүн өзгөртө албайт. Java сыяктуу программалоо тилдери маалыматтарды динамикалык сактоо үчүн колдонулган Коллекцияларды колдойт. Коллекциялар элементтерди кошуу жана элементтерди жок кылуу сыяктуу операцияларды колдойт. Коллекция иерархиясында бир катар интерфейстер жана класстар бар. Негизги интерфейс Коллекция интерфейси. Set - бул Коллекция интерфейсин кеңейтүүчү интерфейс. Бул кайталанууга жол бербейт. TreeSet жана HashSet Коллекция иерархиясындагы эки класс жана экөө тең Set интерфейсин ишке ашырат. TreeSet - бул Set интерфейсин ишке ашыруучу класс жана ал уникалдуу элементтерди өсүү тартибинде сактоо үчүн колдонулат. HashSet - бул Set интерфейсин ишке ашыруучу класс жана ал Hashing механизмин колдонуу менен уникалдуу элементтерди сактоо үчүн колдонулат. TreeSet менен HashSetтин негизги айырмасы TreeSet элементтерди өсүү тартибинде сактайт, ал эми HashSet элементтерди өсүү тартибинде сактабайт. TreeSet жана HashSet экөө тең уникалдуу элементтерди гана сакташат.
TreeSet деген эмне?
TreeSet классы NavigableSet интерфейсин ишке ашырат. NavigableSet интерфейси SortedSet, Set, Collection жана Iterable интерфейстерин иерархиялык тартипте кеңейтет. TreeSet ар дайым өсүү тартибин сактайт. Эгерде элементтер B, A, C тартибинде киргизилген болсо, алар A, B, C катары сакталат. Add (), Remove () сыяктуу ыкмаларды TreeSet объектисинде колдонсо болот.кошуу ыкмасы элементти кошуу үчүн колдонулушу мүмкүн. Алып салуу ыкмасы коллекциядан элементти алып салуу үчүн колдонулат. Бул TreeSet менен колдонула турган кээ бир ыкмалар.
01-сүрөт: TreeSet менен программа
Жогорудагы программага ылайык, TreeSet түрүндөгү объект түзүлгөн. Саптын маалымат элементтери кошуу ыкмасын колдонуу менен ошол объектке кошулат. Киргизилген маалыматтар тартиби A, D, A, B, C, D. Итератордун жардамы менен сакталган маанилер экранга басылып чыгарылат. Чыгуу A, B, C, D. Эки А тамгасы жана эки D тамгасы бар болсо да, чыгаруу бирден А жана бир D тамгасын көрсөтөт. Ошондуктан, TreeSet уникалдуу элементтерди сактайт. Киргизүүнүн өзгөчө тартиби жок, бирок чыгарууну байкап жатканда, TreeSet элементтердин өсүү тартибин сактап турганын көрүүгө болот.
ХэшСет деген эмне?
HashSet классы Set Interfaceти ишке ашырган AbstractSet классын кеңейтет. Set интерфейси иерархиялык тартипте Collection жана Iterable интерфейстерин мурастайт. HashSetте элементтердин өсүү тартибин жана киргизилген тартипти сактай турганына кепилдик жок. Эгер киргизилген тартип A, B, C болсо, анда маанилер C, A, B катары сакталышы мүмкүн. Сактоо ирети A, B, C болушу мүмкүн, бирок киргизилген тартиптин же өсүү иретинин сакталышына кепилдик жок.
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 vs HashSet |
|
TreeSet - коллекция иерархиясындагы класс, ал уникалдуу элементтерди өсүү тартибинде сактоо үчүн колдонулат. | HashSet - коллекция иерархиясындагы класс, ал Хэшинг механизмин колдонуу менен уникалдуу элементтерди сактоо үчүн колдонулат. |
Элементти сактоо | |
TreeSet элементтерди өсүү тартибинде сактайт. | HashSet элементтерди өсүү тартибинде сактабайт. |
Кыскача – TreeSet жана HashSet
Программалоодо маалымат элементтерин динамикалык түрдө сактоо талап кылынат. Java сыяктуу программалоо тилдери бул тапшырманы аткаруу үчүн Collections колдойт. Коллекция иерархиясында бир катар интерфейстер жана класстар бар. TreeSet жана HashSet Коллекция иерархиясында эки класс болуп саналат. Экөө тең Set интерфейсин ишке ашырат. TreeSet - бул Set интерфейсин ишке ашыруучу класс жана ал уникалдуу элементтерди өсүү тартибинде сактоо үчүн колдонулат. HashSet - бул Set интерфейсин ишке ашыруучу класс жана ал Hashing механизмин колдонуу менен уникалдуу элементтерди сактоо үчүн колдонулат. TreeSet менен HashSetтин айырмасы TreeSet элементтерди өсүү тартибинде сактайт, ал эми HashSet элементтерди өсүү тартибинде сактабайт. Бул макалада TreeSet менен HashSet ортосундагы айырма талкууланган.