"இதோ நான் இருக்கிறேன்."

"ஹாய், எல்லி!"

"இன்று நாம் ஒரு சுவாரஸ்யமான தலைப்பைப் பற்றி பேசுவோம். நான் உங்களுக்கு ArrayList வகுப்பைப் பற்றி சொல்லப் போகிறேன் ."

"புதிய வகுப்பு? கூல்! அது என்ன செய்ய முடியும்?"

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

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

"அப்படியானால், புரோகிராமர்கள் என்ன கொண்டு வந்தார்கள்?"

"அவர்கள் ArrayList வகுப்பை எழுதினார்கள் , இது ஒரு வரிசையைப் போலவே செய்கிறது, ஆனால் அது அதன் அளவை மாற்றும்."

"சுவாரஸ்யமான நடவடிக்கை. அவர்கள் அதை எப்படி செய்தார்கள்?"

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

வரிசை வரிசைப்பட்டியல்
உறுப்புகளுக்கு ஒரு கொள்கலனை உருவாக்கவும்
String[] list = new String[10];
ArrayList<String> list = new ArrayList<String>();
உறுப்புகளின் எண்ணிக்கையைப் பெறுங்கள்
int n = list.length;
int n = list.size();
அணிவரிசை/சேகரிப்பிலிருந்து ஒரு உறுப்பைப் பெறுங்கள்
String s = list[3];
String s = list.get(3);
ஒரு உறுப்பை ஒரு வரிசையில் எழுதவும்
list[3] = s;
list.set(3, s);

"அப்படியானால், ஏன் வரிசைப்பட்டியல் சிறப்பாக உள்ளது? என்னால் சொல்ல முடிந்தவரை, குறியீடு இப்போது நீளமாக உள்ளது."

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

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

அ) தற்போதைய உள் வரிசையை விட 50% பெரியதாக மற்றொரு அணி உருவாக்கப்பட்டது, மேலும் ஒரு உறுப்பு.

b) பழைய வரிசையில் இருந்து அனைத்து கூறுகளும் புதியதாக நகலெடுக்கப்படும்.

c) புதிய அணிவரிசை வரிசைப்பட்டியல் பொருளின் உள் அணிவரிசையாக சேமிக்கப்படுகிறது. பழைய வரிசை குப்பை என்று அறிவிக்கப்பட்டது (அதற்கான குறிப்பை சேமிப்பதை நாங்கள் நிறுத்துகிறோம்)."

வரிசை வரிசைப்பட்டியல்
வரிசையின் முடிவில் ஒரு உறுப்பைச் சேர்க்கவும்
இந்த நடவடிக்கை ஆதரிக்கப்படவில்லை
list.add(s);
வரிசையின் நடுவில் ஒரு உறுப்பைச் சேர்க்கவும்
இந்த நடவடிக்கை ஆதரிக்கப்படவில்லை
list.add(15, s);
வரிசையின் தொடக்கத்தில் ஒரு உறுப்பைச் சேர்க்கவும்
இந்த நடவடிக்கை ஆதரிக்கப்படவில்லை
list.add(0, s);
அணிவரிசையிலிருந்து ஒரு உறுப்பை நீக்கவும்
உடன் ஒரு உறுப்பை நாம் நீக்கலாம் list[3] = null. ஆனால் இது வரிசையில் ஒரு 'ஓட்டை' விட்டுவிடும்.
list.remove(3);

"இந்த வரிசைப்பட்டியலுடன் நாங்கள் எவ்வாறு வேலை செய்வது?"

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

"இதைப் பார்:

ஒரு வரிசையுடன்
public static void main(String[] args)
{
Reader r = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(r);

// Read strings from the keyboard
String[] list = new String[10];
for (int i = 0; i < list.length; i++)
{
  String s = reader.readLine();
  list[i] = s;
}

// Display the contents of the array
for (int i = 0; i < list.length; i++)
{
  int j = list.length - i - 1;
  System.out.println( list[j] );
}
}
வரிசைப்பட்டியலுடன்
public static void main(String[] args)
{
Reader r = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(r);

// Read strings from the keyboard
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++)
{
  String s = reader.readLine();
  list.add(s);
}

// Display the contents of the collection
for (int i = 0; i < list.size(); i++)
{
  int j = list.size() - i - 1;
  System.out.println( list.get(j) );
}
}

ஒவ்வொரு நெடுவரிசையிலும் ஒரே மாதிரியான செயல்களை முன்னிலைப்படுத்த ஒரே நிறத்தைப் பயன்படுத்தினேன்."

"ஒருபுறம், எல்லாம் வித்தியாசமானது, மறுபுறம், அது இன்னும் அப்படியே உள்ளது."

"சரி. வரிசைப்பட்டியலுடன் பணிபுரியும் போது சதுர அடைப்புக்குறிகளைப் பயன்படுத்துவதில்லை என்பதைத் தவிர . அதற்குப் பதிலாக, பெறுதல் , அமைத்தல் மற்றும் சேர்க்கும் முறைகளைப் பயன்படுத்துகிறோம் ."

"ஆமாம், நான் அவ்வளவுதான் கூட்டி வந்தேன். இன்னும், அதே போலத்தான் தெரிகிறது."