"మీ మెదడుకు కొంచెం శిక్షణ ఎలా ఉంటుంది? ఇది ఇప్పటికీ పని క్రమంలో ఉందని నేను ఆశిస్తున్నాను."

"ఇంతకుముందు, కంటైనర్‌లు మరియు సేకరణల పట్టికలో ఒకే ఇంటర్‌ఫేస్ బహుళ అమలులను కలిగి ఉంటుందని మీరు చూశారు. మనకు అది ఎందుకు అవసరమో నేను ఇప్పుడు మీకు చెప్తాను. మరియు లింక్డ్‌లిస్ట్ నుండి అర్రేలిస్ట్ ఎలా భిన్నంగా ఉంటుంది ."

"విషయం ఏమిటంటే, సేకరణలు వివిధ మార్గాల్లో అమలు చేయబడవచ్చు మరియు ఏ అమలు ఎల్లప్పుడూ ఆదర్శంగా ఉండదు. ఒక విధానంలో, కొన్ని కార్యకలాపాలు వేగంగా ఉంటాయి, కానీ మరికొన్ని నెమ్మదిగా ఉంటాయి. మరొక విధానానికి వ్యతిరేకం నిజం కావచ్చు. ఖచ్చితమైన ఒక-పరిమాణం లేదు- అన్నింటికి సరిపోయే పరిష్కారం."

"అందుకే ఒకే సేకరణ యొక్క అనేక సంస్కరణలను అమలు చేయడానికి నిర్ణయం తీసుకోబడింది. ప్రతి అమలును కొన్ని ఇరుకైన కార్యకలాపాల కోసం ఆప్టిమైజ్ చేయాలి. ఈ విధంగా విభిన్న సేకరణలు వచ్చాయి. ఉదాహరణగా రెండు తరగతులను అధ్యయనం చేద్దాం: ArrayList మరియు LinkedList ."

అర్రేలిస్ట్ వర్సెస్ లింక్డ్‌లిస్ట్ - 1

"అంతర్గతంగా, ArrayList ఒక సాధారణ శ్రేణి వలె అమలు చేయబడుతుంది . అందుకే మధ్యలో ఒక మూలకాన్ని చొప్పించడానికి మేము మొదట అన్ని తదుపరి మూలకాలను ఒకదానితో ఒకటి మార్చాలి, ఆపై కొత్త మూలకాన్ని ఉచిత స్లాట్‌లో ఉంచాలి. మూలకాలను పొందడం మరియు సెట్ చేయడం (పొందడం, సెట్ చేయడం ) వేగంగా ఉంటుంది , ఎందుకంటే ఈ ఆపరేషన్లు సంబంధిత శ్రేణి మూలకాన్ని మాత్రమే పరిష్కరిస్తాయి."

" లింక్డ్‌లిస్ట్ వేరొక అంతర్గత నిర్మాణాన్ని కలిగి ఉంది. ఇది ఒకదానితో ఒకటి అనుసంధానించబడిన మూలకాలతో జాబితాగా అమలు చేయబడుతుంది : విభిన్న మూలకాల సమితి, వీటిలో ప్రతి ఒక్కటి జాబితాలోని తదుపరి మరియు మునుపటి అంశాలకు సూచనలను నిల్వ చేస్తుంది. అటువంటి జాబితా మధ్యలో ఒక మూలకాన్ని చొప్పించడానికి, మీరు దాని భవిష్యత్ పొరుగువారి సూచనలను మాత్రమే మార్చాలి. అయితే, మూలకం సంఖ్య 130ని పొందడానికి, మీరు ప్రతి వస్తువును 0 నుండి 130 వరకు పరిగెత్తాలి. మరో మాటలో చెప్పాలంటే, పొందండి మరియు సెట్ చేసే కార్యకలాపాలు నెమ్మదిగా ఉంటాయి . క్రింది పట్టికను చూడండి :"

వివరణ ఆపరేషన్ అర్రేలిస్ట్ లింక్డ్లిస్ట్
ఒక మూలకాన్ని పొందండి పొందండి వేగంగా నెమ్మదిగా
ఒక మూలకాన్ని సెట్ చేయండి సెట్ వేగంగా నెమ్మదిగా
ఒక మూలకాన్ని జోడించండి (జాబితా చివరి వరకు) జోడించు వేగంగా వేగంగా
మూలకాన్ని చొప్పించండి (ఏకపక్ష స్థానంలో) జోడించు (i, విలువ) నెమ్మదిగా వేగంగా
ఒక మూలకాన్ని తీసివేయండి తొలగించు నెమ్మదిగా వేగంగా

"నేను చూస్తున్నాను. నేను ఇప్పుడు దానిని అర్థం చేసుకోవడం ప్రారంభించాను. నిర్దిష్ట పరిస్థితిలో ఏ సేకరణ ఉత్తమమో తెలుసుకోవడంలో నాకు సహాయపడే ఏవైనా ప్రమాణాలు లేదా నియమాలు ఉన్నాయా?"

"సులభంగా ఉంచడానికి, నేను మీకు క్రింది నియమాన్ని ఇస్తాను: మీరు సేకరణ మధ్యలో ఎలిమెంట్‌లను తరచుగా ఇన్‌సర్ట్ (లేదా తీసివేయడం) చేయబోతున్నట్లయితే, లింక్డ్‌లిస్ట్‌ని ఉపయోగించడం ఉత్తమం. అన్ని ఇతర సందర్భాల్లో, అర్రేలిస్ట్ మెరుగ్గా పని చేస్తుంది . "

"అవి మరింత అధునాతన పాఠాలలో ఎలా నిర్మించబడ్డాయో మేము పరిశీలిస్తాము, కానీ ప్రస్తుతానికి మేము వాటిని ఉపయోగించడం సాధన చేస్తాము."