CodeGym /Java Blog /சீரற்ற /ஜாவாவில் அணிவரிசையை வரிசைப்பட்டியலாக மாற்றுதல்
John Squirrels
நிலை 41
San Francisco

ஜாவாவில் அணிவரிசையை வரிசைப்பட்டியலாக மாற்றுதல்

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

datatype[] isArray;
Datatype என்பது int, float, long, அல்லது String போன்ற எந்தவொரு பழமையான தரவு வகையாகும். அறிவிப்புக்குப் பிறகு அடைப்புக்குறிகளையும் நீங்கள் இவ்வாறு வைக்கலாம்:

datatype isArray[];
அப்படியானால், இந்த நிலையான வரிசையை ஒரு குறிப்பிட்ட எண்ணிக்கையிலான உறுப்புகளுடன் எடுத்து, அதை வரிசைப்பட்டியலாக மாற்றுவது எப்படி? சரி, முதலில், ArrayList என்றால் என்ன என்று பார்ப்போம்.

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

ஒரு ArrayList ஆனது வரிசைக்கு ஒத்த பெயரைக் கொண்டிருக்கலாம் ஆனால் அது முற்றிலும் வித்தியாசமாக கையாளப்படுகிறது. ஏனென்றால், ஒரு வரிசைப்பட்டியல் கொள்கலன் வகுப்பை நீட்டிக்காது, அது பட்டியல் வகுப்பை நீட்டிக்கிறது. மற்றும் எல்லாம் வித்தியாசமாக கையாளப்படுகிறது என்று அர்த்தம். ஒன்று, இது ஒரு பட்டியல் என்பதால், நீங்கள் அதை வித்தியாசமாக கையாளலாம். சேர்க்கை (உறுப்பு) ஐப் பயன்படுத்தி நீங்கள் வரிசைப்பட்டியலின் அளவை அதிகரிக்கலாம் அல்லது குறைக்கலாம் , இது பட்டியலின் முடிவில் உறுப்பை வைக்கிறது மற்றும் தேவைப்பட்டால் அளவை ஒன்று அதிகரிக்கிறது. அல்லது trimToSize()ஐப் பயன்படுத்தலாம்இது முடிவில் காலியான குறியீடுகளை நீக்கி, வரிசைப்பட்டியலை அதன் தற்போதைய அளவிற்கு ஒழுங்கமைக்கிறது. ஒரு வரிசைக்குப் பதிலாக ஒரு வரிசைப்பட்டியலைப் பயன்படுத்துவதில் சில நன்மைகள் இருப்பதை நீங்கள் காணலாம். அடுத்து, அணிவரிசையில் இருந்து வரிசைப்பட்டியலுக்கு மாற்றும் இரண்டு முறைகளையும், தேவைப்பட்டால் பின்வாங்குவது எப்படி என்பதையும் நாங்கள் உங்களுக்குக் காண்பிக்கப் போகிறோம்.

ஜாவாவில் வரிசையிலிருந்து வரிசைப்பட்டியலுக்கும், வரிசைப்பட்டியலுக்கு அணிவரிசைக்கும் நகரும்

எனவே, பூனை மரங்களை பழுதுபார்ப்பதற்காக உங்கள் நிறுவனத்தில் எத்தனை நட்டுகள் மற்றும் போல்ட்கள் உள்ளன என்ற விவரத்தை வைக்க நீங்கள் ஒரு நிரலை எழுதியுள்ளீர்கள் என்று வைத்துக்கொள்வோம். பல ஆண்டுகளாக, உங்களுக்கு 30 வெவ்வேறு வகையான வகைகள் மட்டுமே தேவைப்படுகின்றன, எனவே கண்காணிக்க ஒரு வரிசையைப் பயன்படுத்துவது எளிதானது. ஆனால் இப்போது உங்களிடம் ஒரு புதிய கிளையன்ட் இருக்கிறார், அவர் கூடுதலாக 5 வகைகளை சேமித்து வைக்க வேண்டும். உங்கள் திட்டத்தை மாற்றுவது மற்றும் உங்கள் எல்லா தரவையும் வைத்திருப்பது எப்படி, மேலும் நீங்கள் மற்றொரு கிளையண்டை எடுக்கும்போது இதை மீண்டும் செய்வதிலிருந்து உங்களைத் தடுப்பது எப்படி? அது சரி! ஒரு வரிசைப் பட்டியல்! ஜாவா வரிசையை வரிசைப்பட்டியலாக மாற்றுவது எப்படி? மூன்று முறைகள் உள்ளன. .asList() முறையைப் பயன்படுத்தி ஜாவா வரிசைகளில் ஒரு சிறந்த கருவி உள்ளது, நீங்கள் .asList() எனப்படும் API ஐப் பார்க்கும்போது நீங்கள் பார்க்க முடியும் . எனவே நீங்கள் இதில் எழுதலாம்:

boltInventory.asList(bolts);
இந்த முறையின் சிக்கல் என்னவென்றால், இது உண்மையான வரிசைப்பட்டியலை உருவாக்கவில்லை. அது என்ன செய்கிறது, அது அளவு நிலையான மற்றும் மாற்ற முடியாத ஒரு பட்டியலை உருவாக்குகிறது. எனவே நீங்கள் இன்னும் ஒரு மாறும் வழியில் அளவை மாற்ற முடியாது. உறுப்புகளைச் சேர்க்க அல்லது அகற்ற முயற்சித்தால் விதிவிலக்கு ஏற்படும். இது அதன் பயன்பாடுகளைக் கொண்டிருந்தாலும், இது உண்மையான மாற்றம் அல்ல. ஆனால் இதை நாம் பயன்படுத்தலாம். .asList() ஐ ஒரு வாதமாகப் பயன்படுத்துதல் ஜாவாவில் ஒரு வரிசையை பட்டியலாக மாற்ற இது இரண்டாவது வழி. .asList () முறை ஒரு பட்டியலை உருவாக்குவதால், நமது உண்மையான ArrayListக்கு ஒரு குறிப்பை அனுப்ப அதைப் பயன்படுத்தலாம். வரிசைப்பட்டியலை எவ்வாறு துவக்குவது என்பது இங்கே:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
இது பத்து வெற்று கலங்களைக் கொண்ட வரிசைப்பட்டியலை உருவாக்கும். இருப்பினும், வரிசைப்பட்டியலை நிரப்ப ஒரு வாதத்தை அனுப்ப இறுதியில் () பயன்படுத்தப்படலாம். எனவே .asList முறையுடன் இணைத்து , உங்களிடம்:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
இது .asList() முறையால் உருவாக்கப்பட்ட பட்டியலை ArrayList க்குள் அனுப்புகிறது, எனவே இப்போது உங்களுக்குத் தேவையானதை மாறும் வகையில் கையாளலாம். Collections.addAll() முறையைப் பயன்படுத்துதல் ஜாவாவில் ஒரு வரிசையை வரிசைப்பட்டியலாக மாற்ற மற்றொரு வழி இந்த முறையைப் பயன்படுத்துவதாகும். இது வரிசையின் உள்ளடக்கங்களை வரிசைப்பட்டியலுக்கு அனுப்புகிறது. இந்த முறைக்கான பொதுவான தொடரியல்:

Collections.addAll(c, T);
c என்பது இலக்கு மற்றும் T என்பது கடந்து செல்லப்படுவது. எனவே எங்கள் உதாரணத்திற்கு, தொடரியல் இப்படி இருக்கும்:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
இது வரிசை போல்ட்களின் முழு உள்ளடக்கத்தையும் புதிய வரிசைப்பட்டியலுக்கு அனுப்பும். வரிசைப்பட்டியலை வரிசையாக மாற்றுதல் ஜாவாவில் ஒரு வரிசைப்பட்டியலை ஒரு வரிசையாக மாற்ற வேண்டிய நேரங்கள் இருக்கலாம். நீங்கள் செய்தால், ArrayList இல் ஒரு முறை உள்ளது .toArray(a) , இங்கு a என்பது இலக்கு. எனவே எங்கள் உதாரணத்திற்கு, தொடரியல் பின்வருமாறு:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
இப்படி ஜாவாவில் வரிசையாக ஒரு பட்டியலை மாற்றும்போது, ​​நீங்கள் ஆழமான நகலை உருவாக்குகிறீர்கள். அதாவது, வரிசைக்கான அனைத்து குறிப்புகளும் வரிசைப்பட்டியலுக்கான குறிப்புகளிலிருந்து வேறுபட்டவை. எனவே நீங்கள் ArrayList இல் சேமிக்கப்பட்ட தரவை மாற்றாமல், வரிசையில் உள்ள தரவை கையாளலாம். நீங்கள் தரவைச் சோதிக்க வேண்டியிருக்கும் போது ஜாவா பட்டியலை வரிசையாக மாற்றுவது பயனுள்ளது.

முடிவுரை

சிறிய தரவுத் தொகுப்புகளின் விரைவான அணுகல் மற்றும் விரைவான கையாளுதலுக்கு வரிசைகள் மிகவும் பயனுள்ளதாக இருக்கும், ஆனால் அவற்றின் அளவை மாற்ற இயலாமை என்பது நீண்ட கால பயன்பாட்டிற்கான செயல்திறனை விரைவாக இழக்கிறது. ஒரு வரிசைப்பட்டியல் உங்களுக்கு அந்த நெகிழ்வுத்தன்மையையும் தேவைக்கேற்ப முனைகளைச் செருகும் மற்றும் அகற்றும் திறனையும் வழங்குகிறது. ஜாவா வரிசையை எவ்வாறு பட்டியலாக மாற்றுவது என்பதைக் கற்றுக்கொள்வது உங்கள் நிரல்களின் ஒட்டுமொத்த செயல்திறனை மேம்படுத்துவதோடு அவற்றின் இயக்க நேரங்களையும் மேம்படுத்தும்.
கருத்துக்கள்
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION