Негізгі айырмашылық – HashMap және TreeMap
Бағдарламалауда деректерді жинаудың әртүрлі механизмдері бар. Жинақтар деректерді сақтаудың бір әдісі болып табылады. Java сияқты бағдарламалау тілдері Collections пайдаланады. Бұл деректер элементтерінің жиынын сақтауға және өңдеуге арналған сыныптары мен интерфейстері бар құрылым. Қалыпты массивте сақталатын элементтердің бекітілген саны бар. Бұл массивтердің шектеуі. Оның орнына бағдарламашы жинақтарды пайдалана алады. Жинақтардың көмегімен кірістіру, жою, сұрыптау және іздеу сияқты операцияларды орындауға болады. Java тілінде Map интерфейсі жинақтарға жатады. Карта кілттік, мәндік жұптардағы деректерді көрсету үшін қолданылады. Тек бірегей кілттер бар және әрқайсысының сәйкес мәні бар. HashMap және TreeMap Карта интерфейсін жүзеге асыратын сыныптар болып табылады. HashMap - деректер элементтерінде белгілі бір ретті сақтамайтын кілт пен мән жұптарын сақтау үшін пайдаланылатын картаға негізделген жинақ класы. TreeMap - деректер элементтерінің өсу ретін сақтайтын кілт пен мән жұптарын сақтау үшін пайдаланылатын Картаға негізделген жинақ класы. HashMap мен TreeMap арасындағы негізгі айырмашылық мынада: HashMap деректер элементтерінде белгілі бір ретті сақтамайды, ал TreeMap деректер элементтерінің өсу ретін сақтайды.
HashMap дегеніміз не?
HashMap – карта интерфейсін жүзеге асыратын класс. Ол AbstractMap класын кеңейтеді және Map интерфейсін жүзеге асырады. HashMap кілтті, мән жұптарын қамтиды. Әрбір элемент бірегей. HashMap ішіндегі элементтерді кілт арқылы табу оңай. HashMap жариялау келесідей.
қоғамдық класс HashMap кеңейтілген AbstractMap қолданбасы Карта, Клондалатын, Серияланатын
K пернеге сілтеме жасайды, ал V сол арнайы кілтке сәйкес мәнге сілтеме жасайды. Әрбір кілт, мән жұбы HashMap жазбасы болып табылады.
01-сурет: Карта интерфейсі
HaspMap картасын түсіну үшін келесідей сценарийді қабылдаңыз. Онда бағдарламашы студент аттары мен сәйкес индекс нөмірлерінің жинағын сақтағысы келсе, ол HashMap қолданбасын пайдалана алады. Оқушылардың аты-жөні индекс сандарын табу үшін қолданылады. Сондықтан, индекс сандары мәндер болса, студент аттары кілт болып табылады.
02-сурет: Java қолданатын HashMap бағдарламасы
Жоғарыдағы бағдарламаға сәйкес HashMap объектісі жасалады. Содан кейін бағдарламашы сол нысанды пайдаланып элементтерді қоса алады. Мәндерді қою әдісі арқылы енгізуге болады. Мәндерді алу үшін бағдарламашы кілтпен get әдісін қолдануы керек. studentList.get("150") пайдалану кезінде; ол Анн индексіне сәйкес атауды басып шығарады. Егер бағдарламашы барлық мәндерді алғысы келсе, онда ол барлық кілттер мен мәндерді басып шығару үшін Map. Entry пайдалана алады. Шығаруды бақылаған кезде, HashMap нақты тәртіпті сақтамайтынын көруге болады. Ол элементтерді енгізілген ретпен басып шығармайды. Элементтер кездейсоқ ретпен басып шығарылады.
TreeMap дегеніміз не?
TreeMap - Java тіліндегі класс, ол Map интерфейсін жүзеге асырады. HashMap сияқты, ол кілтті, мән жұптарын, бірақ өсу ретімен сақтау үшін де қолданылады. TreeMap NavigableMap қолданбасын жүзеге асырады және NavigableMap SortedMap кеңейтеді және SortedMap картаны кеңейтеді. Әрбір элемент бірегей. Ағаш картасын жариялау келесідей.
қоғамдық класс TreeMap кеңейтілген AbstractMap NavigaableMap, Clone, Serializable қолданбаларын кеңейтеді
K пернеге сілтеме жасайды, ал V сол арнайы кілтке сәйкес мәнге сілтеме жасайды. Әрбір кілт, мән жұбы TreeMap жазбасы болып табылады.
03-сурет: Java көмегімен TreeMap бағдарламасы
Жоғарыдағы бағдарламаға сәйкес TreeMap объектісі жасалады. Содан кейін бағдарламашы сол нысанды пайдаланып элементтерді қоса алады. Мәндерді қою әдісі арқылы енгізуге болады. Мәндерді алу үшін бағдарламашы кілтпен get әдісін қолдануы керек. studentList.get("150") пайдалану кезінде; ол Анн индексіне сәйкес атауды басып шығарады. Егер бағдарламашы барлық мәндерді алғысы келсе, онда ол барлық кілттер мен мәндерді басып шығару үшін Map. Entry пайдалана алады. Шығаруды бақылаған кезде TreeMap белгілі бір тәртіпті сақтайтынын көруге болады. Элементтер өсу ретімен басып шығарылады.
HashMap және TreeMap арасындағы қандай ұқсастықтар бар?
- HashMap және TreeMap екеуі де Карта интерфейсін жүзеге асырады.
- HashMap және TreeMap екеуі де көптеген элементтерді сақтай және басқара алады.
- HashMap және TreeMap екеуінде кілт, мән жұптары бар.
- HashMap және TreeMap екеуінде де көптеген бос мәндер болуы мүмкін.
- HashMap және TreeMap екеуінде де сақтауға болатын элементтер санына шектеу жоқ.
HashMap мен TreeMap арасындағы айырмашылық неде?
HashMap және TreeMap |
|
Хэшкарта деректер элементтерінде белгілі бір ретті сақтамайтын кілт пен мән жұптарын сақтау үшін пайдаланылатын картаға негізделген жинақ класы. | TreeMap - картаға негізделген жинақ класы, ол деректер элементтерінің өсу ретін сақтайтын кілт пен мән жұптарын сақтау үшін пайдаланылады. |
Тапсырыс | |
Хэшкарта тәртіпті сақтамайды. | Ағаш картасы өсу ретін сақтайды. |
Нөл кілт | |
Хэшкартада бір нөлдік кілт болуы мүмкін. | Ағаш картасының нөлдік кілті болмауы керек. |
Өнімділік | |
HashMap TreeMap-тен жылдамырақ. | TreeMap HashMap-тен баяу. |
Қорытынды – HashMap және TreeMap
Java сияқты бағдарламалау тілдерінде жинақ құрылымы бар. Массивтерде элементтердің бекітілген саны болуы мүмкін. Сондықтан массив өлшемі басында инициализациялануы керек. Коллекцияларда бағдарламашы қажетінше көптеген элементтерді сақтай алады. Сақтау үшін нақты сома жоқ. Карта - бұл коллекциялық құрылымға жататын интерфейс. HashMap - деректер элементтерінде белгілі бір ретті сақтамайтын кілттер мен мән жұптарын сақтау үшін пайдаланылатын картаға негізделген жинақ класы. TreeMap - бұл деректер элементтерінің өсу ретін сақтайтын кілттер мен мән жұптарын сақтау үшін пайдаланылатын Картаға негізделген жинақ класы. Бұл мақалада Map интерфейсін жүзеге асыратын HashMap мен TreeMap арасындағы айырмашылық талқыланды. HashMap мен TreeMap арасындағы айырмашылық HashMap деректер элементтерінде белгілі бір ретті сақтамайды, ал TreeMap деректер элементтерінің өсу ретін сақтайды.