ቁልፍ ልዩነት - ArrayList vs LinkedList
ስብስቦች ውሂብን ለማከማቸት ጠቃሚ ናቸው። በተለመደው ድርድር, የድርድር መጠኑ ተስተካክሏል. አንዳንድ ጊዜ እንደ አስፈላጊነቱ ሊያድጉ የሚችሉ ድርድሮችን መፍጠር ያስፈልጋል. እንደ ጃቫ ያሉ የፕሮግራሚንግ ቋንቋዎች ስብስቦች አሏቸው። የክፍሎች እና መገናኛዎች ስብስብ ያለው ማዕቀፍ ነው. ለቡድን ንጥረ ነገሮች እንደ መያዣ ሆኖ ያገለግላል. ስብስቦች የንጥረ ነገሮችን ስብስብ ለማከማቸት፣ ለማዘመን እና ሰርስረው ለማውጣት ይፈቅዳሉ። እንደ ዝርዝሮች፣ ስብስቦች፣ ዛፎች እና ካርታዎች ካሉ የመረጃ አወቃቀሮች ጋር አብሮ ለመስራት ይረዳል። ዝርዝሩ የስብስብ ማዕቀፍ በይነገጽ ነው። ArrayList እና LinkedList በክምችት ማዕቀፍ ውስጥ ሁለት ክፍሎች ናቸው። የስብስብ በይነገጽ እና የዝርዝር በይነገጽን ተግባራዊ ያደርጋሉ።ይህ ጽሑፍ በ ArrayList እና LinkedList መካከል ያለውን ልዩነት ያብራራል። ArrayList የአብስትራክት ዝርዝርን የሚያራዝም እና የዝርዝር በይነገጽን የሚተገበር ክፍል ሲሆን ይህም የውሂብ ክፍሎችን ለማከማቸት ተለዋዋጭ ድርድርን ይጠቀማል። LinkedList AbstractSequentialListን የሚያራዝም እና ዝርዝር፣Deque እና Queue በይነገጾችን የሚተገበር ክፍል ሲሆን ይህም የውሂብ ክፍሎችን ለማከማቸት በእጥፍ የተገናኘ ዝርዝርን ይጠቀማል። በArayList እና LinkedList መካከል ያለው ቁልፍ ልዩነት ያ ነው።
አረይሊስት ምንድነው?
የArayList ክፍል ተለዋዋጭ ድርድሮችን ለመፍጠር ጥቅም ላይ ይውላል። ከመደበኛው ድርድር በተለየ፣ የተለዋዋጭ ድርድር መጠኑ አልተስተካከለም። ArrayList ክፍልን በመጠቀም የተፈጠረ ነገር በዝርዝሩ ውስጥ ያሉትን ንጥረ ነገሮች እንዲያከማች ተፈቅዶለታል። አቅሙ በራስ-ሰር ይጨምራል, ስለዚህ ፕሮግራመር ወደ ዝርዝሩ ውስጥ ክፍሎችን መጨመር ይችላል. የ ArrayList ክፍል የዝርዝር በይነገጽን ተግባራዊ የሚያደርገውን የአብስትራክት ዝርዝር ክፍልን ያራዝመዋል። ስለዚህ የዝርዝር በይነገጽ ዘዴዎች በ ArrayList መጠቀም ይቻላል. ኤለመንቶችን ለመድረስ የማግኘት() ዘዴ ስራ ላይ ይውላል።የ add() ዘዴ አባሎችን ወደ ዝርዝሩ ለመጨመር ጥቅም ላይ ሊውል ይችላል። የማስወገድ() ዘዴው አንድን ንጥረ ነገር ከዝርዝሩ ውስጥ ለማስወገድ ይጠቅማል። ከታች ያለውን ፕሮግራም ይመልከቱ።
ሥዕል 01፡ የArayList ምሳሌ
ከላይ ባለው ፕሮግራም መሰረት የ ArrayList ነገር ተፈጥሯል። የመደመር ዘዴን በመጠቀም ንጥረ ነገሮች በተለዋዋጭነት ሊጨመሩ ይችላሉ። "A", "B", "C", "D" እና "E" የሚባሉት ንጥረ ነገሮች የመደመር ዘዴን በመጠቀም ይጨምራሉ. የማስወገጃ ዘዴው አንድን ንጥረ ነገር ከዝርዝሩ ለማስወገድ ይጠቅማል። 4 ን ወደ ማስወገጃ ዘዴ ሲያልፍ በ 4 ኛ ኢንዴክስ ውስጥ "ኢ" የሚለው ፊደል ከዝርዝሩ ውስጥ ይወገዳል. loopን ተጠቅመው በዝርዝሩ ውስጥ ሲደጋገሙ፣ A፣ B፣ C እና D ፊደሎች ይታተማሉ።
የተገናኘ ዝርዝር ምንድነው?
ከArayList ጋር በሚመሳሰል መልኩ፣LinkedList በተለዋዋጭ የውሂብ ክፍሎችን ለማከማቸት ይጠቅማል። LinkedList ክፍልን በመጠቀም የተፈጠረ ነገር በዝርዝሩ ውስጥ ያሉትን ንጥረ ነገሮች እንዲያከማች ተፈቅዶለታል። አቅሙ በራስ-ሰር ይጨምራል, ስለዚህ ፕሮግራመር ወደ ዝርዝሩ ውስጥ ክፍሎችን መጨመር ይችላል. በውስጥ በኩል ውሂብ ለማከማቸት በእጥፍ የተገናኘ ዝርዝር ይጠቀማል። በእጥፍ በተገናኘ ዝርዝር ውስጥ ውሂቡ እንደ አንጓዎች ተቀምጧል። እያንዳንዱ መስቀለኛ መንገድ ሁለት አገናኞችን ይይዛል። የመጀመሪያው ማገናኛ ወደ ቀዳሚው መስቀለኛ መንገድ ይጠቁማል. የሚቀጥለው ማገናኛ ወደ ቀጣዩ መስቀለኛ መንገድ በቅደም ተከተል ይጠቁማል።
የሊንክድ ዝርዝር ክፍል የአብስትራክት ተከታታይ ዝርዝር ክፍልን ያራዝመዋል እና የዝርዝር በይነገጽን ይተገበራል። ስለዚህ የዝርዝር በይነገጽ ዘዴዎች በ LinkedList መጠቀም ይቻላል. የጌት() ዘዴ የዝርዝሩን ክፍሎች ለመድረስ ጥቅም ላይ ሊውል ይችላል። የ add() ዘዴ አባሎችን ወደ ዝርዝሩ ለመጨመር ጥቅም ላይ ሊውል ይችላል። የማስወገድ() ዘዴው አንድን ንጥረ ነገር ከዝርዝሩ ውስጥ ለማስወገድ ይጠቅማል። ከታች ያለውን ፕሮግራም ይመልከቱ።
ስእል 02፡ ምሳሌ በLinkedList
ከላይ ባለው ፕሮግራም መሰረት የሊንክድ ሊስት ነገር ተፈጥሯል። የመደመር ዘዴን በመጠቀም ንጥረ ነገሮች በተለዋዋጭነት ሊጨመሩ ይችላሉ። "A", "B", "C", "D" እና "E" የሚባሉት ንጥረ ነገሮች የመደመር ዘዴን በመጠቀም ይጨምራሉ. የማስወገጃ ዘዴው አንድን ንጥረ ነገር ከዝርዝሩ ለማስወገድ ይጠቅማል። 4 ን ወደ ማስወገጃ ዘዴ ሲያስተላልፉ በ 4 ኛ ኢንዴክስ ውስጥ "ኢ" የሚለው ፊደል ከዝርዝሩ ውስጥ ያስወግዳል. ለ loop ሲደጋገሙ፣ A፣ B፣ C እና D ፊደሎች ይታተማሉ።
በArayList እና LinkedList መካከል ያሉ ተመሳሳይነቶች ምንድን ናቸው?
- ሁለቱም ArrayList እና LinkedList የዝርዝር በይነገጽን ይተገብራሉ።
- ሁለቱም ArrayList እና LinkedList የተባዙ አባሎችን ሊይዙ ይችላሉ።
- ሁለቱም ArrayList እና LinkedList የማስገቢያ ትዕዛዙን ያስጠብቃሉ።
በአረይሊስት እና በተገናኘ ዝርዝር መካከል ያለው ልዩነት ምንድን ነው?
የድርድር ዝርዝር vs LinkedList |
|
አራይሊስት የአብስትራክት ዝርዝርን የሚያራዝም እና የዝርዝር በይነገጽን የሚተገበር ክፍል ሲሆን በውስጥ በኩል ተለዋዋጭ ድርድር የውሂብ ክፍሎችን ለማከማቸት። | LinkedList የአብስትራክት ተከታታይ ዝርዝርን የሚያራዝም እና ዝርዝር፣Deque፣Queue interfacesን የሚተገበር ክፍል ሲሆን ይህም የውሂብ ክፍሎችን ለማከማቸት በእጥፍ የተገናኘ ዝርዝርን ይጠቀማል። |
ክፍሎችን መድረስ | |
የArayList ክፍሎችን መድረስ ከተያያዘው ሊስት የበለጠ ፈጣን ነው። | የLinkedList ክፍሎችን መድረስ ከአረይሊስት ቀርፋፋ ነው። |
ኤለመንቶችን ማቀናበር | |
የArayList ክፍሎችን ማቀናበር ከተያያዘው ሊስት ቀርፋፋ ነው። | የLinkedList ክፍሎችን ማቀናበር ከአረይሊስት የበለጠ ፈጣን ነው። |
ባህሪ | |
የድርድር ዝርዝር እንደ ዝርዝር ይሰራል። | LinkedList እንደ ዝርዝር እና ወረፋ ይሰራል። |
ማጠቃለያ - ArrayList vs LinkedList
የስብስብ ማዕቀፉ እንደ ዝርዝሮች፣ ዛፎች፣ ካርታዎች እና ስብስቦች ካሉ የውሂብ አወቃቀሮች ጋር አብሮ ለመስራት ያስችላል። ዝርዝሩ የስብስብ ማዕቀፍ በይነገጽ ነው። ይህ ጽሑፍ በ ArrayList እና LinkedList መካከል ያለውን ልዩነት ተወያይቷል። ArrayList የአብስትራክት ዝርዝርን የሚያራዝም እና የውሂብ ክፍሎችን ለማከማቸት ተለዋዋጭ ድርድርን በውስጥ በኩል የሚጠቀም የዝርዝር በይነገጽን ተግባራዊ የሚያደርግ ክፍል ነው።LinkedList AbstractSequentialListን የሚያራዝም እና ዝርዝር፣Deque,Queue interfacesን የሚተገበር ክፍል ሲሆን ይህም የውሂብ ክፍሎችን ለማከማቸት በእጥፍ የተገናኘ ዝርዝርን ይጠቀማል። በArayList እና LinkedList መካከል ያለው ልዩነት ያ ነው።