የቁልፍ ልዩነት – TreeSet vs HashSet
አብዛኞቹ የፕሮግራሚንግ ቋንቋዎች Arraysን ይደግፋሉ። ተመሳሳይ የውሂብ አይነት ብዙ ንጥረ ነገሮችን ለማከማቸት የሚያገለግል የውሂብ መዋቅር ነው። ለስድስት አካላት የታወጀ ድርድር ካለ፣ አስር ንጥረ ነገሮችን ለማከማቸት መጠቀም አይቻልም። ስለዚህ፣ ድርድሮች ተለዋዋጭ አይደሉም እና አንዴ ከታወጀ በኋላ የድርድር መጠኑን መቀየር አይችሉም። እንደ ጃቫ ያሉ የፕሮግራሚንግ ቋንቋዎች ውሂብን በተለዋዋጭነት ለማከማቸት የሚያገለግሉ ስብስቦችን ይደግፋል። ስብስቦች እንደ ኤለመንቶችን ማከል እና አባሎችን መሰረዝ ያሉ ስራዎችን ይደግፋሉ። በክምችት ተዋረድ ውስጥ በርካታ መገናኛዎች እና ክፍሎች አሉ። የመሠረቱ በይነገጽ የስብስብ በይነገጽ ነው።አዘጋጅ የስብስብ በይነገጽን የሚያራዝም በይነገጽ ነው። ማባዛትን አይፈቅድም። TreeSet እና HashSet በክምችት ተዋረድ ውስጥ ሁለት ክፍሎች ናቸው እና ሁለቱም የ Set በይነገጽን ተግባራዊ ያደርጋሉ። TreeSet Set በይነገጽን የሚተገበር ክፍል ነው እና ልዩ ክፍሎችን በከፍታ ቅደም ተከተል ለማከማቸት ያገለግላል። HashSet Set interfaceን የሚተገብር ክፍል ነው እና ልዩ ክፍሎችን የሃሺንግ ዘዴን በመጠቀም ለማከማቸት ይጠቅማል። በTreeSet እና HashSet መካከል ያለው ቁልፍ ልዩነት TreeSet ኤለመንቶችን በከፍታ ቅደም ተከተል የሚያከማች ሲሆን HashSet ደግሞ ኤለመንቶችን በከፍታ ቅደም ተከተል አያከማችም። ሁለቱም TreeSet እና HashSet ልዩ ክፍሎችን ብቻ ነው የሚያከማቹት።
TreeSet ምንድን ነው?
TreeSet ክፍል NavigableSet በይነገጽን ተግባራዊ ያደርጋል። የNavigableSet በይነገጽ በተዋረድ ቅደም ተከተላቸው የSertedSet፣ Set፣ Collection እና Iterable በይነገጾችን ያስፋፋል። TreeSet ሁልጊዜ ወደ ላይ የሚወጣውን ቅደም ተከተል ይጠብቃል። ንጥረ ነገሮቹ በ B፣ A፣ C ቅደም ተከተል ውስጥ ከተጨመሩ እንደ A፣ B፣ C ይቀመጣሉ። እንደ መደመር ()፣ ማስወገድ () ያሉ ዘዴዎች ከTreeSet ነገር ጋር መጠቀም ይችላሉ።የመደመር ዘዴ አንድን አካል ለመጨመር ጥቅም ላይ ሊውል ይችላል. የማስወገጃ ዘዴው አንድን ንጥረ ነገር ከስብስቡ ውስጥ ለማስወገድ ይጠቅማል። እነዚያ ከTreeSet ጋር ጥቅም ላይ ሊውሉ የሚችሉ አንዳንድ ዘዴዎች ናቸው።
ስእል 01፡ ፕሮግራም ከTreeSet
ከላይ ባለው ፕሮግራም መሰረት የTreeSet አይነት ነገር ተፈጥሯል። የሕብረቁምፊው ዳታ አካላት የመደመር ዘዴን በመጠቀም ወደዚያ ነገር ይታከላሉ። የገባው መረጃ ቅደም ተከተል A, D, A, B, C, D ነው. ተደጋጋሚውን በመጠቀም የተቀመጡት ዋጋዎች በማያ ገጹ ላይ ታትመዋል. ውጤቱ A, B, C, D ነው, ምንም እንኳን ሁለት A ፊደሎች እና ሁለት ዲ ፊደሎች ቢኖሩም ውጤቱ አንድ እና አንድ D ያሳያል. ስለዚህ, TreeSet ልዩ ንጥረ ነገሮችን ያከማቻል. ምንም የተለየ የማስገባት ትእዛዝ የለም ነገር ግን ውጤቱን በሚመለከትበት ጊዜ TreeSet የንጥረ ነገሮችን ወደላይ ከፍ ያለ ቅደም ተከተል እንደያዘ ሊታይ ይችላል።
HashSet ምንድን ነው?
የHashSet ክፍል Set Interfaceን የሚተገብር የAbstractSet ክፍልን ያራዝመዋል። የ Set በይነገጽ በተዋረድ ቅደም ተከተል የስብስብ እና ተደጋጋሚ መገናኛዎችን ይወርሳል። በ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 በስብስብ ተዋረድ ውስጥ ያለ ክፍል ሲሆን ልዩ ክፍሎችን Hashing ዘዴን በመጠቀም ለማከማቸት ያገለግላል። |
ንጥረ ነገር ማከማቻ | |
TreeSet ንጥረ ነገሮቹን በከፍታ ቅደም ተከተል ያከማቻል። | HashSet ኤለመንቶችን በሽቅብ ቅደም ተከተል አያከማችም። |
ማጠቃለያ – TreeSet vs HashSet
በፕሮግራም አወጣጥ ውስጥ የውሂብ ክፍሎችን በተለዋዋጭ ማከማቸት ያስፈልጋል። ይህንን ተግባር ለማሳካት እንደ ጃቫ ያሉ የፕሮግራም አወጣጥ ቋንቋዎች ስብስቦችን ይደግፋል። በክምችት ተዋረድ ውስጥ በርካታ መገናኛዎች እና ክፍሎች አሉ። TreeSet እና HashSet በክምችት ተዋረድ ውስጥ ሁለት ክፍሎች ናቸው። ሁለቱም የ Set በይነገጽን ተግባራዊ ያደርጋሉ። TreeSet Set በይነገጽን የሚተገበር ክፍል ነው እና ልዩ ክፍሎችን በከፍታ ቅደም ተከተል ለማከማቸት ያገለግላል። HashSet Set interfaceን የሚተገብር ክፍል ነው እና ልዩ ክፍሎችን የሃሺንግ ዘዴን በመጠቀም ለማከማቸት ይጠቅማል።በTreeSet እና HashSet መካከል ያለው ልዩነት TreeSet ኤለመንቶችን በከፍታ ቅደም ተከተል የሚያከማች ሲሆን HashSet ደግሞ ኤለመንቶችን በከፍታ ቅደም ተከተል አያከማችም። ይህ መጣጥፍ በTreeSet እና HashSet መካከል ያለውን ልዩነት ተመልክቷል።