தொகுதி பாடங்கள் (2/2)
தொகுப்புகள் மற்றும் வரிசைப்பட்டியல்
ஜாவாவில் உள்ள பாரம்பரிய வரிசைகள் உருவாக்கத்தின் போது வரையறுக்கப்பட்ட ஒரு நிலையான அளவைக் கொண்டுள்ளன. அளவு மாறக்கூடிய தரவுகளின் பட்டியல்களுடன் பணிபுரிய, Java Java Collections Frameworkஐ வழங்குகிறது. பொதுவாகப் பயன்படுத்தப்படும் வகுப்பு ArrayList.
ArrayList வகுப்பு மற்றும் பொதுவானவை
ArrayList நினைவகத்தில் மறுஅளவிடக்கூடிய வரிசையை செயல்படுத்துகிறது. ArrayListஐ அறிவிக்க, < > கோண அடைப்புக்குறிக்குள் அடைப்பதன் மூலம் அதில் உள்ள உறுப்புகளின் வகையைக் குறிப்பிட வேண்டும். இந்த அம்சம் ஜெனரிக்ஸ் என்று அழைக்கப்படுகிறது.
ArrayList ஐப் பயன்படுத்த, கோப்பின் தொடக்கத்தில் java.util.ArrayList இலிருந்து இறக்குமதி செய்ய வேண்டும்.
அறிவிப்பு மற்றும் உடனடி அறிவிப்பு:
import java.util.ArrayList;
ArrayList<String> shoppingList = new ArrayList<>();முக்கிய முறைகள்
ArrayList இன் அடிப்படை செயல்பாடுகள் இதோ:
add(element): பட்டியலின் முடிவில் ஒரு உறுப்பைச் சேர்க்கிறது.get(index): குறிப்பிட்ட குறியீட்டில் (0-இண்டெக்ஸ்) உறுப்பை வழங்கும்.size(): பட்டியலில் தற்போது உள்ள உறுப்புகளின் எண்ணிக்கையை வழங்குகிறது.remove(index): குறிப்பிட்ட குறியீட்டில் உள்ள உறுப்பை நீக்குகிறது.
shoppingList.add("Pane");
shoppingList.add("Latte");
System.out.println("Elementi: " + shoppingList.size()); // Prints 2
System.out.println("Primo elemento: " + shoppingList.get(0)); // Prints "Pane"ஒரு பட்டியலின் மீது மீண்டும் மீண்டும் (ஒவ்வொருவருக்கும்)
ஒவ்வொரு லூப் என்பது ஒரு சேகரிப்பின் அனைத்து கூறுகளையும் மீண்டும் செயல்படுத்துவதற்கான சிறந்த கட்டமைப்பாகும்:
for (String item : shoppingList) {
System.out.println(item);
}வரிசை vs வரிசை பட்டியல்: நினைவகம் மற்றும் செயல்திறன்
நிலையான வரிசையை விட ArrayList மிகவும் நெகிழ்வானதாக இருந்தாலும், இது செயல்திறன் மற்றும் நினைவக பரிமாற்றங்களுடன் வருகிறது:
- ** நிலையான வரிசை**: இது நினைவகத்தின் தொடர்ச்சியான தொகுதியில் ஒதுக்கப்பட்டுள்ளது, நிலையான அளவைக் கொண்டுள்ளது மற்றும் குறியீட்டு வழியாக உறுப்புகளை அணுகுவது மிக வேகமாக இருக்கும். இது பழமையான வகைகளை நேரடியாக மேல்நிலை இல்லாமல் சேமிக்கிறது.
- அரேலிஸ்ட்: உள்நாட்டில், அதன் ஆரம்பத் திறனை (பொதுவாக 10) மீறும் போது, மறுஅளவிடப்படும் (புதிய பெரிய வரிசையை உருவாக்கி பழைய கூறுகளை நகலெடுப்பதன் மூலம்) இது ஒரு வரிசையை நிர்வகிக்கிறது. மேலும், இது பொருள் குறிப்புகளை மட்டுமே சேமிக்கிறது, ஒவ்வொரு உறுப்புக்கும் நினைவக மேல்நிலையை அறிமுகப்படுத்துகிறது.
ஆட்டோ பாக்ஸிங் மற்றும் அன்பாக்சிங்
ArrayList பொருள்களை மட்டுமே வைத்திருக்க முடியும் என்பதால், ஜாவா தானாகவே பழமையான வகைகளுக்கும் அவற்றின் ரேப்பர் வகுப்புகளுக்கும் இடையில் மாற்றங்களைச் செய்கிறது:
- ஆட்டோ பாக்ஸிங்: ஒரு பழமையான வகையிலிருந்து ரேப்பர் வகுப்பிற்கு தானியங்கி மாற்றம். எடுத்துக்காட்டாக, நீங்கள்
numbers.add(42)என்று எழுதும்போது, Java தானாகவே42(int) ஐInteger.valueOf(42)(முழு எண்) ஆக மாற்றுகிறது. - அன்பாக்சிங்: ரேப்பர் வகுப்பிலிருந்து ஒரு பழமையான வகைக்கு தானியங்கு மாற்றம். எடுத்துக்காட்டாக, நீங்கள்
int num = numbers.get(0)ஐ இயக்கும்போது, Java உள்நாட்டில்Integerஐintஆக மாற்றுகிறது.
நீங்களே முயற்சி செய்து பாருங்கள்
வரிசைப்பட்டியலை இறக்குமதி செய்து, சரம் பெயரிடப்பட்ட பெயர்களின் வரிசைப்பட்டியலை அறிவிக்கவும். பட்டியலில் Alice மற்றும் Bob ஐச் சேர்த்து, அதன் அளவை size() முறையைப் பயன்படுத்தி அச்சிடவும்.
குறிப்பைக் காட்டு
மேலே உள்ள `இறக்குமதி java.util.ArrayList;` ஐச் சேர்க்கவும். `ArrayList<String> names = new ArrayList<>();` உடன் பட்டியலை உருவாக்கவும், உறுப்புகளைச் சேர்த்து, அதன் அளவை `names.size()` உடன் அச்சிடவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
முழு எண் பெயரிடப்பட்ட எண்களின் வரிசைப் பட்டியலை அறிவிக்கவும், எண் 42 ஐச் சேர்த்து, get() ஐப் பயன்படுத்தி குறியீட்டு 0 இல் மீட்டெடுப்பதன் மூலம் அதை அச்சிடவும்.
குறிப்பைக் காட்டு
`ArrayList<Integer> numbers = new ArrayList<>();` (Integer wrapper class உடன்) பயன்படுத்தவும் மற்றும் அதை `System.out.println(numbers.get(0));` உடன் அச்சிடவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
சரம் பெயரிடப்பட்ட வண்ணங்களின் வரிசைப்பட்டியலை அறிவிக்கவும். பட்டியலில் சிவப்பு, பச்சை மற்றும் நீல நிறங்களைச் சேர்க்கவும். இறுதியாக, ஒவ்வொரு லூப்பைப் பயன்படுத்தி பட்டியலின் மூலம் மீண்டும் மீண்டும் திரையில் ஒவ்வொரு வண்ணத்தையும் அச்சிடவும்.
குறிப்பைக் காட்டு
`ArrayList<String> colours = new ArrayList<>();` உடன் பட்டியலை அறிவிக்கவும், மூன்று வண்ணங்களைச் சேர்த்து, `System.out.println(c);` ஐப் பயன்படுத்தி அவற்றை அச்சிட `for (ஸ்ட்ரிங் c : நிறங்கள்)` என்ற லூப்பைப் பயன்படுத்தவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்