ஜாவாவில் வரிசை பட்டியல் மற்றும் இணைக்கப்பட்ட பட்டியலுக்கு இடையிலான வேறுபாடு
உள்ளடக்கம்
வரிசை பட்டியல் மற்றும் இணைக்கப்பட்ட பட்டியல் சேகரிப்பு வகுப்புகள், மற்றும் இவை இரண்டும் செயல்படுத்துகின்றன பட்டியல் இடைமுகம். அரேலிஸ்ட் வகுப்பு உள்நாட்டில் சேமிக்கப்படும் பட்டியலை உருவாக்குகிறது மாறும் வரிசை உறுப்புகள் சேர்க்கப்படுவதோ அல்லது அதிலிருந்து நீக்கப்படுவதோ அவை அளவு வளர்கின்றன அல்லது சுருங்குகின்றன. உள்நாட்டில் சேமிக்கப்பட்டுள்ள பட்டியலையும் லிங்க்ட்லிஸ்ட் உருவாக்குகிறது இரட்டிப்பாக்குகிறது இணைக்கப்பட்ட பட்டியல். இரண்டு வகுப்புகளும் பட்டியலில் உள்ள கூறுகளை சேமிக்கப் பயன்படுகின்றன, ஆனால் அரேலிஸ்ட் மற்றும் லிங்க்ட்லிஸ்ட் ஆகிய இரு வகுப்புகளுக்கும் இடையிலான முக்கிய வேறுபாடு என்னவென்றால் ArrayList பட்டியலில் உள்ள உறுப்புகளுக்கு சீரற்ற அணுகலை இது அனுமதிக்கிறது குறியீட்டு சார்ந்த தரவு அமைப்பு. மறுபுறம், தி LinkedList உறுப்புகளை நேரடியாக அணுக குறியீடுகள் இல்லாததால் சீரற்ற அணுகலை அனுமதிக்காது, பட்டியலிலிருந்து ஒரு உறுப்பை மீட்டெடுக்க அல்லது அணுக அது பட்டியலைக் கடந்து செல்ல வேண்டும்.
கீழே காட்டப்பட்டுள்ள ஒப்பீட்டு விளக்கப்படத்தின் உதவியுடன் அரேலிஸ்ட் மற்றும் லிங்க்ட்லிஸ்ட் இடையே இன்னும் சில வேறுபாடுகளைப் பற்றி விவாதிப்போம்.
- ஒப்பீட்டு விளக்கப்படம்
- வரையறை
- முக்கிய வேறுபாடுகள்
- தீர்மானம்
ஒப்பீட்டு விளக்கப்படம்
ஒப்பீட்டுக்கான அடிப்படை | ArrayList | LinkedList |
---|---|---|
அடிப்படை | பட்டியலில் உள்ள உறுப்புகளுக்கு சீரற்ற அணுகலை வரிசை பட்டியல் அனுமதிக்கிறது. | பட்டியலில் உள்ள உறுப்புகளுக்கு சீரற்ற அணுகலை இணைக்கப்பட்ட பட்டியல் அனுமதிக்காது. |
தரவு அமைப்பு | உறுப்புகளை சேமிக்கப் பயன்படும் உள் அமைப்பு டைனமிக் வரிசை. | உறுப்புகளை சேமிக்க பயன்படுத்தப்படும் உள் அமைப்பு இரட்டிப்பு இணைப்பு பட்டியல். |
அதிகப்படுத்தவும் | வரிசை பட்டியல் AbstarctList வகுப்பை நீட்டிக்கிறது. | இணைக்கப்பட்ட பட்டியல் சுருக்கம் சமநிலை பட்டியலை நீட்டிக்கிறது. |
கருவிகள் | சுருக்கம் பட்டியல் பட்டியல் இடைமுகத்தை செயல்படுத்துகிறது. | லிங்க்ட்லிஸ்ட் பட்டியல், டெக், வரிசை ஆகியவற்றை செயல்படுத்துகிறது. |
அணுகல் | பட்டியலில் உள்ள உறுப்புகளுக்கான அணுகல் வரிசை பட்டியலில் வேகமாக உள்ளது. | பட்டியலில் உள்ள உறுப்புகளுக்கான அணுகல் சென்டர் பட்டியலில் மெதுவாக உள்ளது. |
கையாளுதல் | பட்டியலில் உள்ள உறுப்புகளுக்கு கையாளுதல் வரிசை பட்டியலில் மெதுவாக உள்ளது. | பட்டியலில் உள்ள உறுப்புகளுக்கு கையாளுதல் சென்டர் பட்டியலில் வேகமாக உள்ளது. |
நடத்தை | அரேய்லிஸ்ட் பட்டியலை செயல்படுத்துவதால் பட்டியலாக செயல்படுகிறது. | பட்டியல் மற்றும் வரிசை இரண்டையும் செயல்படுத்துவதால் லிங்க்ட்லிஸ்ட் பட்டியல் மற்றும் வரிசையாக செயல்படுகிறது. |
வரிசைப்பட்டியலின் வரையறை
தி AbstractList வர்க்கம் வரையறுக்கப்படுகிறது சேகரிப்பு கட்டமைப்பு. அது நீண்டுள்ளது AbstarctList மற்றும் செயல்படுத்துகிறது பட்டியல் இடைமுகம். வரிசை பட்டியல் பயன்படுத்துகிறது டைனமிக் வரிசை அதாவது பட்டியலில் உள்ள கூறுகளை சேமிக்க உள் தரவு கட்டமைப்பாக மாறி நீளத்தின் வரிசை. ஜாவாவில் உள்ள வரிசை நிலையான நீளமாக இருப்பதால் அரேலிஸ்ட்டின் தேவை எழுகிறது. எனவே அணியிலிருந்து கூறுகள் சேர்க்கப்படுவதால் அல்லது நீக்கப்படுவதால் அது வளரவோ அல்லது சுருக்கவோ முடியாது. எனவே தேவையான வரிசையின் அளவை நீங்கள் முன்கூட்டியே தெரிந்து கொள்ள வேண்டும். ஆனால் அரேலிஸ்ட் வகுப்பைப் பயன்படுத்தி செயல்படுத்தப்பட்ட வரிசை பட்டியல், கூறுகள் வரிசையில் இருந்து சேர்க்கப்படுவதால் அல்லது நீக்கப்படுவதால் அளவு வளர்ந்து சுருங்கக்கூடும்.
வரிசை பட்டியலைப் பயன்படுத்தி செயல்படுத்தப்பட்ட வரிசை பட்டியலை அணுகலாம் தோராயமாக வரிசை பட்டியல் குறியீட்டு அடிப்படையில் செயல்படுகிறது. எனவே குறியீட்டை அறிந்துகொள்வது நீங்கள் பட்டியலின் எலிமெண்டை நேரடியாக அணுகலாம். வரிசைப்பட்டியலில் மூன்று கட்டமைப்பாளர்கள் உள்ளனர்:
வரிசை பட்டியல் () வரிசை பட்டியல் (சேகரிப்பு <? விரிவாக்கம் E> c) வரிசை பட்டியல் (முழு திறன்)
தி முதல் கட்டமைப்பாளர் வெற்று வரிசை பட்டியலை செயல்படுத்துகிறார். தி இரண்டாவது கட்டமைப்பாளர் ஒரு வரிசை பட்டியலை செயல்படுத்துகிறார் தொகுப்பு சி கூறுகள். தி மூன்றாவது கட்டமைப்பாளர் வரிசை பட்டியலை செயல்படுத்துகிறார் திறன் வாதத்தில் வழங்கப்பட்டுள்ளது. வரிசைப்பட்டியலுடன் பணிபுரிவது, சில நேரங்களில் நீங்கள் சேகரிப்பு வரிசை பட்டியலை ஒரு வரிசையாக மாற்ற வேண்டியிருக்கும். அழைப்பதன் மூலம் இதைச் செய்யலாம் toArray ().
இணைக்கப்பட்ட பட்டியலின் வரையறை
வரிசைப்பட்டியல் போல, LinkedList ஒரு சேகரிப்பு வர்க்கப் பயன்பாடுகள் இரட்டிப்பாக இணைக்கப்பட்ட பட்டியல் பட்டியலில் உள்ள கூறுகளை சேமிக்க உள் தரவு கட்டமைப்பாக. இணைக்கப்பட்ட பட்டியல் வகுப்பு நீண்டுள்ளது AbstractSequentialList மற்றும் செயல்படுத்துகிறது பட்டியல், இருமுனைச் சாரை மற்றும் கியூ இண்டர்ஃபேஸ்கள். இணைக்கப்பட்ட பட்டியலைப் பயன்படுத்தி செயல்படுத்தப்பட்ட இணைக்கப்பட்ட பட்டியலை தோராயமாக அணுக முடியாது. பட்டியலிலிருந்து எந்த உறுப்புகளையும் மீட்டெடுக்க விரும்பினால், அந்த உறுப்பை தேட நீங்கள் பட்டியலை மீண்டும் செய்ய வேண்டும்.
இணைக்கப்பட்ட பட்டியல் வகுப்பில் இரண்டு கட்டமைப்பாளர்கள் உள்ளனர்.
இணைக்கப்பட்ட பட்டியல் () இணைக்கப்பட்ட பட்டியல் (சேகரிப்பு <? E> c ஐ நீட்டிக்கிறது)
தி முதல் கட்டமைப்பாளர் வெற்று இணைக்கப்பட்ட பட்டியலை உருவாக்குகிறார். தி இரண்டாவது கட்டமைப்பாளர் ஒரு இணைக்கப்பட்ட பட்டியலை உருவாக்குகிறார், இன் கூறுகளுடன் தொடங்கப்படுகிறது சேகரிப்பு இ.
சென்டர் பட்டியலில், பட்டியலின் கையாளுதல் எளிதானது மற்றும் விரைவானது. ஏனென்றால், பட்டியலில் ஏதேனும் ஒரு உறுப்பை நீங்கள் சேர்த்தால் அல்லது நீக்கினால், அரேலிஸ்ட்டில் உள்ளதைப் போல உறுப்புகளை மாற்ற வேண்டிய அவசியமில்லை. உறுப்புகளை நேரடியாக அணுக குறியீட்டு இல்லாததால் அணுகல் மெதுவாக உள்ளது.
- வரிசைப்பட்டியலால் செயல்படுத்தப்படும் பட்டியலை தோராயமாக அணுக முடியும், ஏனெனில் வரிசையின் குறியீட்டு அடிப்படையிலான தரவு கட்டமைப்பை அரேலிஸ்ட் ஏற்றுக்கொள்கிறது. மறுபுறம், இணைக்கப்பட்ட பட்டியலால் செயல்படுத்தப்பட்ட பட்டியலை தோராயமாக அணுக முடியாது, ஏனெனில் பட்டியலில் ஒரு குறிப்பிட்ட உறுப்பை மீட்டெடுக்க அல்லது அணுகுவதற்கு நீங்கள் பட்டியலைக் கடக்க வேண்டும்.
- பட்டியலின் கூறுகளை சேமிக்க அரேலிஸ்ட் பயன்படுத்தும் உள் தரவு அமைப்பு a டைனமிக் வரிசை உறுப்புகள் பட்டியலில் இருந்து சேர்க்கப்படுவதால் அல்லது நீக்கப்படுவதால் அது வளரலாம் அல்லது சுருங்கக்கூடும். இருப்பினும், பட்டியலில் உள்ள கூறுகளை சேமிக்க லிங்க்ட்லிஸ்ட் பயன்படுத்தும் உள் தரவு அமைப்பு இரட்டிப்பாக இணைக்கப்பட்ட பட்டியல்.
- வரிசை பட்டியல் நீட்டிக்கிறது AbstractList வகுப்பு இது ஒரு சேகரிப்பு வகுப்பாகும், அதேசமயம், இணைக்கப்பட்ட பட்டியல் வகுப்பு நீண்டுள்ளது AbstractSequentialList மீண்டும் சேகரிப்பு வகுப்பு என்று வகுப்பு.
- வரிசை பட்டியல் வகுப்பு செயல்படுத்துகிறது பட்டியல் இடைமுகம், இணைக்கப்பட்ட பட்டியல் வகுப்பு செயல்படுத்துகிறது பட்டியல், கியூ, மற்றும் இருமுனைச் சாரை இண்டர்ஃபேஸ்கள்.
- வரிசை பட்டியலைப் பயன்படுத்தி செயல்படுத்தப்பட்ட பட்டியலிலிருந்து கூறுகளை அணுகுவது வேகமாக இது ஒரு குறியீட்டு அடிப்படையிலான தரவு கட்டமைப்பைக் கொண்டிருப்பதால். மறுபுறம், லிங்கில்ட்லிஸ்ட் செயல்படுத்தும் பட்டியலில் குறியீட்டு அடிப்படையிலான கட்டமைப்பு எதுவும் இல்லை. எனவே, அணுகக்கூடிய உறுப்பை அடைய பட்டியலில் ஒரு ஈரேட்டர் பயன்படுத்தப்படுகிறது மெதுவாக இணைக்கப்பட்ட பட்டியலில்.
- கையாளுதல் என்பது அரேலிஸ்டைப் பயன்படுத்தி செயல்படுத்தப்படும் பட்டியலில் கையாளுதல் ஆகும், ஏனெனில் பட்டியலிலிருந்து ஒரு உறுப்பு சேர்க்கப்படும்போது அல்லது நீக்கப்படும் போதெல்லாம், பட்டியலில் உள்ள கூறுகள் மாற்றத்திற்கு ஏற்ப மாற்றப்படும். மறுபுறம், லிங்க்ட்லிஸ்ட் செயல்படுத்திய பட்டியலில் கையாளுதல் வேகமாக உள்ளது, ஏனெனில் பட்டியலில் உள்ள கூறுகளை சேர்ப்பது அல்லது நீக்குவது குறித்த பட்டியலில் உள்ள கூறுகளை மாற்ற தேவையில்லை.
- வரிசை பட்டியல் a போல செயல்படுகிறது பட்டியலில் இது பட்டியல் இடைமுகத்தை செயல்படுத்துகையில், இணைக்கப்பட்ட பட்டியல் செயல்படுகிறது பட்டியலில் மற்றும் வரிசையில் இது பட்டியல் மற்றும் வரிசை இரண்டையும் செயல்படுத்துகிறது.
தீர்மானம்:
பட்டியலில் உள்ள கூறுகளை அடிக்கடி சேர்ப்பது அல்லது நீக்குவது இருக்கும்போது, கையாளுதலின் போது சிறப்பாக செயல்படுவதால், இணைக்கப்பட்ட பட்டியல் பயன்படுத்தப்பட வேண்டும். பட்டியலில் அடிக்கடி தேடல் பயன்படுத்தப்பட்டால், பட்டியலிலிருந்து கூறுகளை அணுகும்போது சிறப்பாக செயல்படுவதால், வரிசை பட்டியல் சிறந்த தேர்வாகும்.