ஜாவாவில் வரிசை பட்டியல் மற்றும் திசையன் இடையே உள்ள வேறுபாடு

நூலாசிரியர்: Laura McKinney
உருவாக்கிய தேதி: 1 ஏப்ரல் 2021
புதுப்பிப்பு தேதி: 1 மே 2024
Anonim
14.4 ஜாவாவில் வெக்டர் vs அரேலிஸ்ட்
காணொளி: 14.4 ஜாவாவில் வெக்டர் vs அரேலிஸ்ட்

உள்ளடக்கம்


வரிசை பட்டியல் மற்றும் திசையன் இரண்டும் சேகரிப்பு கட்டமைப்பின் வரிசைக்குட்பட்ட வகுப்புகள். வரிசை பட்டியல் மற்றும் திசையன், இரண்டும் பொருள்களின் மாறும் வரிசையை உருவாக்கப் பயன்படுகின்றன, அங்கு வரிசை தேவைப்படும் போது தேவைப்படும் அளவிற்கு வளரக்கூடும். அரேலிஸ்ட்டையும் வெக்டரையும் வேறுபடுத்துகின்ற இரண்டு அடிப்படை வேறுபாடுகள் என்னவென்றால், வெக்டர் மரபு வகுப்புகளுக்கு சொந்தமானது, பின்னர் அவை சேகரிப்பு வகுப்புகளுக்கு ஆதரவாக மறுசீரமைக்கப்பட்டன, அதே நேரத்தில் ஒரு வரிசை பட்டியல் ஒரு நிலையான சேகரிப்பு வகுப்பாகும். மற்றொரு முக்கியமான வேறுபாடு என்னவென்றால், வரிசை பட்டியல் மறுபுறம் ஒத்திசைக்கப்படவில்லை; திசையன் ஒத்திசைக்கப்படுகிறது.

கீழே காட்டப்பட்டுள்ள ஒப்பீட்டு விளக்கப்படத்தின் உதவியுடன் வேறு சில வேறுபாடுகளைப் படிப்போம்.

  1. ஒப்பீட்டு விளக்கப்படம்
  2. வரையறை
  3. முக்கிய வேறுபாடுகள்
  4. ஒற்றுமைகள்
  5. முடிவுரை

ஒப்பீட்டு விளக்கப்படம்

ஒப்பீட்டுக்கான அடிப்படைArrayListதிசையன்
அடிப்படைவரிசை பட்டியல் வகுப்பு ஒத்திசைக்கப்படவில்லை.திசையன் வகுப்பு ஒத்திசைக்கப்படுகிறது.
மரபு வகுப்புவரிசை பட்டியல் ஒரு நிலையான சேகரிப்பு வகுப்பு.திசையன் ஒரு பாரம்பரிய வகுப்பு, சேகரிப்பு வகுப்பை ஆதரிக்க மீண்டும் வடிவமைக்கப்பட்டுள்ளது.
வகுப்பு பிரகடனம்வகுப்பு வரிசை பட்டியல்வகுப்பு திசையன்
மறுபகிர்மானத்தைகுறிப்பிடப்படாதபோது ஒரு வரிசை பட்டியல் அதன் அளவின் பாதி அதிகரிக்கும்.குறிப்பிடப்படாதபோது, ​​ஒரு திசையன் அதன் அளவை இரட்டிப்பாக்க அதிகரிக்கப்படுகிறது.
செயல்திறன்வரிசை பட்டியல் ஒத்திசைக்கப்படாததால், இது வெக்டரை விட வேகமாக இயங்குகிறது.திசையன் ஒத்திசைக்கப்படுவதால், இது வரிசை பட்டியலை விட மெதுவாக இயங்குகிறது.
கணக்கெடுப்பை / பல செயலாற்றல்அரேலிஸ்டில் சேமிக்கப்பட்ட பொருள்களைக் கடக்க அரேலிஸ்ட் ஐடரேட்டர் இடைமுகத்தைப் பயன்படுத்துகிறது.திசையன்களில் சேமிக்கப்பட்ட பொருள்களைக் கடந்து செல்ல திசையன் கணக்கீடு மற்றும் ஐடரேட்டர் இடைமுகத்தைப் பயன்படுத்துகிறது.


வரிசைப்பட்டியலின் வரையறை

அரேலிஸ்ட் நிலையான சேகரிப்பு வகுப்புகளின் பட்டியலுக்கு சொந்தமானது. வர்க்க வரிசை பட்டியல் உள்ளே வரையறுக்கப்படுகிறது java.util தொகுப்பு, இது நீட்டிக்கிறது AbstractList வர்க்கம் ஒரு நிலையான சேகரிப்பு வகுப்பாகும், மேலும் இது செயல்படுத்துகிறது பட்டியல், சேகரிப்பு இடைமுகங்களில் வரையறுக்கப்பட்ட இடைமுகம். ஜாவாவில், ஒரு நிலையான வரிசை எப்போதும் நிலையான நீளத்தைக் கொண்டிருக்கும். அதாவது ஒரு முறை உருவாக்கப்பட்டது; இது மாறும் வகையில் வளரவில்லை அல்லது அளவு சுருங்காது. எனவே, நீங்கள் பயன்படுத்தும் வரிசையின் நீளம் குறித்த முன் அறிவு உங்களிடம் இருக்க வேண்டும். ஆனால், சில நேரங்களில் ஜாவா அரேலிஸ்ட்டை அறிமுகப்படுத்திய இந்த வகையான சூழ்நிலையை கையாள, தேவையான நீளம் இயக்க நேரத்தில் வெளிப்படும்.

அரேலிஸ்ட் என்பது பொருள்களின் குறிப்புகளை வைத்திருக்கும் ஒரு வரிசையின் மாறும் உருவாக்கத்திற்கு பயன்படுத்தப்படும் வர்க்கமாகும். இந்த வரிசை தேவைப்படும் போது அளவு வளரக்கூடும். வர்க்க அறிவிப்பு பின்வருமாறு:

வகுப்பு வரிசை பட்டியல்

இங்கே, ஒரு வரிசை வைத்திருக்கும் பொருட்களின் வகையை E குறிப்பிடுகிறது. உருவாக்கப்பட்ட வரிசை மாறி நீளம் கொண்டது, மேலும் பட்டியலில் இருந்து பொருள்கள் சேர்க்கப்படும்போது அல்லது அகற்றப்படும்போது அது அதிகரிக்கிறது மற்றும் குறைகிறது.


வரிசை பட்டியல் ஒத்திசைக்கப்படவில்லை, அதாவது, ஒன்றுக்கு மேற்பட்ட நூல்கள் ஒரே நேரத்தில் வரிசையில் செயல்பட முடியும். எடுத்துக்காட்டாக, ஒரு நூல் வரிசைக்கு ஒரு பொருள் குறிப்பைச் சேர்த்தால், மற்றொரு நூல் ஒரே நேரத்தில் ஒரே வரிசையில் இருந்து ஒரு பொருள் குறிப்பை நீக்குகிறது. வரிசை பட்டியல் வகுப்பைப் பயன்படுத்தி ஒரு டைனமிக் வரிசையின் உருவாக்கம்:

ArrayList எஸ் 1 = புதிய வரிசை பட்டியல்(); System.out.ln ("S1 இன் ஆரம்ப அளவு:" + S1.size ()); S1.add ( "டி"); S1.add ( "சி"); S1.add ( "ஹெச்"); S1.add (1, "கி"); System.out.ln ("கூடுதலாக S1 பின்வருமாறு:" + S1); System.out.ln ("சேர்த்த பிறகு S1 இன் அளவு:" + S1.size ()); எஸ் 1.ரெமோவ் ("டி"); எஸ் 1.ரெமோவ் (2); System.out.ln ("S1 ஐ நீக்கிய பின்:" + S1); System.out.ln ("நீக்கப்பட்ட பிறகு S1 இன் அளவு:" + S1.size ()); // S1: 0 இன் வெளியீட்டு தொடக்க அளவு கூடுதலாக S1 பின்வருமாறு: சேர்த்த பிறகு S1 இன் அளவு: 4 நீக்கப்பட்ட பிறகு S1 கொண்டுள்ளது: நீக்கப்பட்ட பிறகு S1 இன் அளவு: 2

மேலே உள்ள குறியீட்டில், நீங்கள் அதைக் காணலாம்; நான் சரம் வகை பொருள்களின் வரிசையை உருவாக்கினேன். சேர் () முறையைப் பயன்படுத்தி வரிசை S1 இல் சில பொருட்களைச் சேர்த்தேன், பின்னர் நீக்கு () முறையைப் பயன்படுத்தி சில பொருட்களை நீக்கிவிட்டேன். வரிசையின் ஆரம்ப அளவை நீங்கள் குறிப்பிடவில்லை என்றால் அது ‘0’ நீளமாக இருக்கும் என்பதை நீங்கள் அவதானிக்கலாம். நீங்கள் கூறுகளைச் சேர்த்து நீக்கும்போது வரிசை வளர்ந்து அளவு சுருங்குவதைக் காணலாம்.

திசையன் வரையறை

திசையன் என்பது ஒரு மரபு வகுப்பு ஆகும், இது சேகரிப்பு கட்டமைப்பின் வரிசைக்கு சேகரிப்பு வகுப்பை ஆதரிக்க மறுசீரமைக்கப்படுகிறது. திசையன் வகுப்பும் வரையறுக்கப்பட்டுள்ளது java.util தொகுப்பு, நீட்டிக்கப்பட்டுள்ளது AbstractList வகுப்பு மற்றும் செயல்படுத்தப்பட்டது பட்டியல் இடைமுகம். திசையன் வகுப்பு பின்வருமாறு அறிவிக்கப்படுகிறது:

வகுப்பு திசையன்

இங்கே, ஒரு வரிசையில் சேமிக்கப்படும் பொருளின் வகையை E வரையறுக்கிறது. திசையன் வகுப்பைப் பயன்படுத்தி உருவாக்கப்பட்ட ஒரு வரிசை மாறி நீளம் கொண்டது. அதிகரிப்பு குறிப்பிடப்படாவிட்டால் அது அதன் அளவை விட இருமடங்கு அதிகரிக்கிறது. வெக்டரைப் பயன்படுத்தி வரிசையை உருவாக்குவதைப் புரிந்துகொள்வோம்.

திசையன் வி = புதிய திசையன்(1,1); V.addElement ( "டெக்"); V.addElement ( "வேறுபாடுகள்"); System.out.ln ("2 சேர்த்தலுக்குப் பிறகு திறன்:" + வி. திறன் ()); V.addElement ( "இடையே"); V.addElement ( "வெக்டார்ஸ்"); System.out.ln ("தற்போதைய திறன்:" + V.capacity ()); // 2 சேர்த்தலுக்குப் பிறகு வெளியீட்டு திறன்: 2 தற்போதைய திறன்: 4

மேலே உள்ள குறியீட்டில் நீங்கள் குறிப்பாக வெக்டரின் கட்டமைப்பாளரின் அளவு மற்றும் அதிகரிப்பு மதிப்பைக் குறிப்பிட்டுள்ளேன், அதே நேரத்தில் சரம் பொருள்களின் வரிசையை அறிவிக்கிறேன். எனவே, வரிசை முடிவடையும் போது, ​​அது அறிவிப்பின் போது கட்டமைப்பாளருக்கு வழங்கப்பட்ட மதிப்பால் அதிகரிக்கிறது என்பதை நீங்கள் அவதானிக்கலாம்.

  1. பல நூல்கள் ஒரே நேரத்தில் அரேலிஸ்ட்டில் இயங்கக்கூடும், எனவே இது கருதப்படுகிறது unsynchronized. வரிசைப்பட்டியலைப் போலன்றி, ஒரு திசையில் ஒரே நேரத்தில் ஒரு நூல் மட்டுமே செயல்பட முடியும்; எனவே இது அழைக்கப்படுகிறது ஒரே சமயத்தில் நடைபெறும்.
  2. ஜாவாவின் ஆரம்ப பதிப்பில், சில வகுப்புகள் மற்றும் இடைமுகங்கள் அவை மரபு வகுப்புகள் என அழைக்கப்படும் பொருட்களை சேமிப்பதற்கான முறைகளை வழங்கும். ஜாவாவின் மரபு வகுப்பில் வெக்டர் ஒன்றாகும். பின்னர், இந்த மரபு வகுப்புகள் சேகரிப்பு வகுப்பை ஆதரிப்பதற்காக மறுசீரமைக்கப்பட்டன, அரேலிஸ்ட் வகுப்பு ஒரு நிலையான சேகரிப்பு வகுப்பாகும்.
  3. ஒரு வரிசையின் வரம்பு முழுமையாகப் பயன்படுத்தப்பட்டு, தீர்ந்துபோன வரிசைக்கு அடுத்ததாக ஒரு புதிய பொருள் சேர்க்கப்படும்போது, ​​அதன் அளவு இரண்டு நிகழ்வுகளிலும் அதாவது அரேலிஸ்ட்டிலும் வெக்டரிலும் வளர்கிறது, ஆனால் வித்தியாசம் என்னவென்றால், வரிசை பட்டியலில் குறிப்பிடப்படவில்லை என்றால் தற்போதைய வரிசையின் 50% அதிகரிக்கும், அதேசமயம், வெக்டர் வரிசையில் அதிகரிப்பு மதிப்பு குறிப்பிடப்படாவிட்டால் அளவு இரட்டிப்பாகும்.
  4. ஒரு வரிசையை கடக்க திசையன் கணக்கீடு மற்றும் ஐட்டரேட்டரைப் பயன்படுத்துகிறது, அதேசமயம், ஒரு வரிசை பயணிக்க ஒரு வரிசை பட்டியல் மட்டுமே ஈரேட்டரைப் பயன்படுத்துகிறது.
  5. அரேலிஸ்ட் ஒத்திசைக்கப்படாததால் மற்றும் பல நூல்கள் ஒரே நேரத்தில் இயங்க முடியும் என்பதால் அதன் செயல்திறன் வெக்டரை விட சிறந்தது, அதில் ஒரே நேரத்தில் ஒரு நூல் மட்டுமே செயல்பட முடியும்.

ஒற்றுமைகள்:

  1. வரிசை பட்டியல் மற்றும் திசையன் இரண்டும் java.util தொகுப்பில் வரையறுக்கப்பட்டுள்ளன.
  2. வரிசை பட்டியல் மற்றும் திசையன் இரண்டும் AbsractList வகுப்பை நீட்டிக்கின்றன.
  3. வரிசை பட்டியல் மற்றும் திசையன் இரண்டும் பட்டியல் இடைமுகத்தை செயல்படுத்துகின்றன.
  4. வரிசை பட்டியல் மற்றும் திசையன்கள் இரண்டும் ஒரு மாறும் வரிசையை உருவாக்க பயன்படுகின்றன.
  5. வரிசை பட்டியல் மற்றும் திசையன் இரண்டும் பொருள் குறிப்புகளைக் கொண்டுள்ளன.

முடிவுரை:

வெக்டரைப் பயன்படுத்துவதை விட அரேலிஸ்ட்டின் பயன்பாடு சிறந்தது, ஏனெனில் அது வேகமாகவும் சிறப்பாகவும் செயல்படுகிறது என்று கூறி முடிக்கிறேன்.