ძირითადი განსხვავება – HashMap vs TreeMap
პროგრამაში არსებობს მონაცემთა შეგროვების სხვადასხვა მექანიზმი. კოლექციები მონაცემების შენახვის ერთ-ერთი მეთოდია. პროგრამირების ენები, როგორიცაა Java, იყენებს კოლექციებს. ეს არის ჩარჩო კლასებით და ინტერფეისებით მონაცემთა ელემენტების ნაკრების შესანახად და მანიპულირებისთვის. ნორმალურ მასივში არის ელემენტების ფიქსირებული რაოდენობა შესანახად. ეს არის მასივების შეზღუდვა. ამის ნაცვლად, პროგრამისტს შეუძლია გამოიყენოს კოლექციები. ოპერაციები, როგორიცაა ჩასმა, წაშლა, დახარისხება და ძიება შეიძლება შესრულდეს კოლექციების გამოყენებით. ჯავაში რუქის ინტერფეისი ეკუთვნის კოლექციებს. რუკა გამოიყენება მონაცემების წარმოსადგენად გასაღების, მნიშვნელობის წყვილებში.არსებობს მხოლოდ უნიკალური გასაღებები და თითოეულს აქვს შესაბამისი მნიშვნელობა. HashMap და TreeMap არის კლასები, რომლებიც ახორციელებენ Map ინტერფეისს. HashMap არის რუქაზე დაფუძნებული შეგროვების კლასი, რომელიც გამოიყენება გასაღებისა და მნიშვნელობის წყვილების შესანახად, რომლებიც არ ინარჩუნებენ კონკრეტულ წესრიგს მონაცემთა ელემენტებში. TreeMap არის რუქაზე დაფუძნებული შეგროვების კლასი, რომელიც გამოიყენება გასაღებისა და მნიშვნელობის წყვილების შესანახად, რომლებიც ინარჩუნებენ მონაცემთა ელემენტების აღმავალ წესრიგს. HashMap-სა და TreeMap-ს შორის მთავარი განსხვავება ისაა, რომ HashMap არ ინარჩუნებს კონკრეტულ წესრიგს მონაცემთა ელემენტებში, ხოლო TreeMap ინარჩუნებს მონაცემთა ელემენტების აღმავალ წესრიგს.
რა არის HashMap?
HashMap არის კლასი, რომელიც ახორციელებს რუქის ინტერფეისს. ის აფართოებს AbstractMap კლასს და ახორციელებს Map ინტერფეისს. HashMap შეიცავს გასაღების, მნიშვნელობის წყვილებს. თითოეული ელემენტი უნიკალურია. HashMap-ში ელემენტების პოვნა მარტივია გასაღების გამოყენებით. HashMap-ის გამოცხადება შემდეგია.
საჯარო კლასის HashMap აფართოებს AbstractMap ახორციელებს რუკას, კლონირებადი, სერიული
K ეხება გასაღებს, ხოლო V აღნიშნავს ამ კონკრეტული გასაღების შესაბამის მნიშვნელობას. თითოეული გასაღები, მნიშვნელობის წყვილი არის HashMap-ის ჩანაწერი.
სურათი 01: რუქის ინტერფეისი
ვივარაუდოთ შემდეგი სცენარი HaspMap-ის გასაგებად. თუ იქ პროგრამისტს სურს შეინახოს სტუდენტების სახელების ნაკრები და შესაბამისი ინდექსის ნომრები, მას შეუძლია გამოიყენოს HashMap. სტუდენტების სახელები გამოიყენება ინდექსის ნომრების მოსაძებნად. ამიტომ, სტუდენტების სახელები არის გასაღებები, ხოლო ინდექსის ნომრები არის მნიშვნელობები.
სურათი 02: HashMap პროგრამა Java-ს გამოყენებით
ზემოხსენებული პროგრამის მიხედვით იქმნება HashMap-ის ობიექტი.შემდეგ პროგრამისტს შეუძლია ელემენტების დამატება ამ ობიექტის გამოყენებით. მნიშვნელობების ჩასმა შესაძლებელია put მეთოდის გამოყენებით. მნიშვნელობების მოსაპოვებლად, პროგრამისტმა უნდა გამოიყენოს get მეთოდი გასაღებით. studentList.get (“150”) გამოყენებისას; ის დაბეჭდავს შესაბამის სახელს იმ ინდექსისთვის, რომელიც არის Ann. თუ პროგრამისტს სურს ყველა მნიშვნელობის მიღება, მაშინ მას შეუძლია გამოიყენოს Map. Entry ყველა გასაღებისა და მნიშვნელობის დასაბეჭდად. გამომავალზე დაკვირვებისას ჩანს, რომ HashMap არ ინარჩუნებს კონკრეტულ წესრიგს. ის არ ბეჭდავს ელემენტებს ჩასმული თანმიმდევრობით. ელემენტები იბეჭდება შემთხვევითი თანმიმდევრობით.
რა არის TreeMap?
TreeMap არის კლასი Java-ში, რომელიც ახორციელებს Map ინტერფეისს. HashMap-ის მსგავსად, ის ასევე გამოიყენება გასაღების, მნიშვნელობის წყვილების შესანახად, მაგრამ ზრდადი თანმიმდევრობით. TreeMap ახორციელებს NavigableMap და NavigableMap აფართოებს SortedMap და SortedMap აფართოებს რუკას. თითოეული ელემენტი უნიკალურია. TreeMap-ის გამოცხადება შემდეგია.
საჯარო კლასის TreeMap აფართოებს AbstractMap ახორციელებს NavigableMap, Cloneable, Serializable
K ეხება გასაღებს, ხოლო V აღნიშნავს ამ კონკრეტული გასაღების შესაბამის მნიშვნელობას. თითოეული გასაღები, მნიშვნელობის წყვილი არის ჩანაწერი TreeMap-ში.
სურათი 03: TreeMap პროგრამა Java-ს გამოყენებით
ზემოხსენებული პროგრამის მიხედვით იქმნება TreeMap-ის ობიექტი. შემდეგ პროგრამისტს შეუძლია ელემენტების დამატება ამ ობიექტის გამოყენებით. მნიშვნელობების ჩასმა შესაძლებელია put მეთოდის გამოყენებით. მნიშვნელობების მოსაპოვებლად, პროგრამისტმა უნდა გამოიყენოს get მეთოდი გასაღებით. studentList.get (“150”) გამოყენებისას; ის დაბეჭდავს შესაბამის სახელს იმ ინდექსისთვის, რომელიც არის Ann. თუ პროგრამისტს სურს ყველა მნიშვნელობის მიღება, მაშინ მას შეუძლია გამოიყენოს Map. Entry ყველა გასაღებისა და მნიშვნელობის დასაბეჭდად. გამომავალზე დაკვირვებისას ჩანს, რომ TreeMap ინარჩუნებს კონკრეტულ წესრიგს. ელემენტები იბეჭდება ზრდადი თანმიმდევრობით.
რა მსგავსებაა HashMap-სა და TreeMap-ს შორის?
- HashMap და TreeMap ახორციელებენ რუქის ინტერფეისს.
- HashMap-საც და TreeMap-საც შეუძლია მრავალი ელემენტის შენახვა და მანიპულირება.
- HashMap და TreeMap შეიცავს გასაღების, მნიშვნელობის წყვილებს.
- HashMap-საც და TreeMap-საც შეიძლება ჰქონდეთ ბევრი null მნიშვნელობა.
- არ არსებობს შეზღუდვა ელემენტების რაოდენობაზე, რომლებიც შეიძლება იყოს შენახული როგორც HashMap-ში, ასევე TreeMap-ში.
რა განსხვავებაა HashMap-სა და TreeMap-ს შორის?
HashMap vs TreeMap |
|
A HashMap არის რუქაზე დაფუძნებული შეგროვების კლასი, რომელიც გამოიყენება გასაღებისა და მნიშვნელობის წყვილების შესანახად, რომლებიც არ ინარჩუნებენ კონკრეტულ წესრიგს მონაცემთა ელემენტებში. | A TreeMap არის რუქაზე დაფუძნებული შეგროვების კლასი, რომელიც გამოიყენება გასაღებისა და მნიშვნელობის წყვილების შესანახად, რომელიც ინარჩუნებს მონაცემთა ელემენტების აღმავალ წესრიგს. |
შეკვეთა | |
HashMap არ ინარჩუნებს წესრიგს. | TeMap ინარჩუნებს აღმავალ წესრიგს. |
ნულის გასაღები | |
HashMap შეიძლება შეიცავდეს ერთ ნულ კლავიშს. | TeMap-ს არ შეიძლება ჰქონდეს null გასაღები. |
შესრულება | |
HashMap უფრო სწრაფია ვიდრე TreeMap. | TreeMap უფრო ნელია ვიდრე HashMap. |
რეზიუმე – HashMap vs TreeMap
პროგრამირების ენები, როგორიცაა Java, შეიცავს კოლექციის ჩარჩოს. მასივებში შეიძლება იყოს ელემენტების ფიქსირებული რაოდენობა. ამიტომ, მასივის ზომა თავიდანვე უნდა იყოს ინიციალირებული. კოლექციებში პროგრამისტს შეუძლია საჭიროებისამებრ შეინახოს მრავალი ელემენტი.არ არსებობს კონკრეტული თანხა შესანახად. რუკა არის ინტერფეისი, რომელიც ეკუთვნის კოლექციის ჩარჩოს. HashMap არის რუქაზე დაფუძნებული შეგროვების კლასი, რომელიც გამოიყენება გასაღებისა და მნიშვნელობის წყვილების შესანახად, რომლებიც არ ინარჩუნებენ კონკრეტულ წესრიგს მონაცემთა ელემენტებში. TreeMap არის რუქაზე დაფუძნებული შეგროვების კლასი, რომელიც გამოიყენება გასაღებისა და მნიშვნელობის წყვილების შესანახად, რომელიც ინარჩუნებს მონაცემთა ელემენტების აღმავალ წესრიგს. ამ სტატიაში განხილული იყო განსხვავება HashMap-სა და TreeMap-ს შორის, რომელიც ახორციელებს რუქის ინტერფეისს. განსხვავება HashMap-სა და TreeMap-ს შორის არის ის, რომ HashMap არ ინარჩუნებს სპეციფიკურ წესრიგს მონაცემთა ელემენტებში, ხოლო TreeMap ინარჩუნებს მონაცემთა ელემენტების აღმავალ წესრიგს.