"๋‚˜ ์—ฌ๊ธฐ์žˆ์–ด."

"์•ˆ๋…•, ์—˜๋ฆฌ!"

"์˜ค๋Š˜์€ ํฅ๋ฏธ๋กœ์šด ์ฃผ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ArrayList ํด๋ž˜์Šค ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ."

"์ƒˆ๋กœ์šด ํด๋ž˜์Šค? ๋ฉ‹์ง€๋‹ค! ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?"

"๋น„ํ•˜์ธ๋“œ ์Šคํ† ๋ฆฌ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ฐฐ์—ด์— ๋Œ€ํ•ด ์‹ซ์–ดํ•˜๋Š” ์œ ์ผํ•œ ์ ์€ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ์œ  ์Šฌ๋กฏ์ด ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๋ฐฐ์—ด์— ์„ธ ๊ฐœ์˜ ์š”์†Œ๋ฅผ ๋” ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? "

"์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋ชจ๋“  ์š”์†Œ๋ฅผ โ€‹โ€‹์œ„ํ•œ ์ถฉ๋ถ„ํ•œ ๊ณต๊ฐ„์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋งค์šฐ ํฐ ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ข…์ข… ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์— ์ผ๋ฐ˜์ ์œผ๋กœ ์„ธ ๊ฐœ์˜ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ๊ฐ€์žฅ ์ž‘์€ ๊ธฐํšŒ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ 100๊ฐœ ์š”์†Œ๋ฅผ ์ˆ˜์šฉํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ 100๊ฐœ ์š”์†Œ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."

"๊ทธ๋ž˜์„œ, ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ๋ฌด์—‡์„ ์ƒ๊ฐํ•ด๋ƒˆ์Šต๋‹ˆ๊นŒ?"

"๊ทธ๋“ค์€ Array์™€ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ArrayList ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค."

"ํฅ๋ฏธ๋กœ์šด ์›€์ง์ž„์ด๊ตฐ์š”. ์–ด๋–ป๊ฒŒ ํ•œ ๊ฑฐ์ฃ ?"

"๋ชจ๋“  ArrayList ๊ฐœ์ฒด๋Š” ์š”์†Œ์˜ ์ผ๋ฐ˜ ๋ฐฐ์—ด์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ArrayList ์—์„œ ์š”์†Œ๋ฅผ ์ฝ์„ ๋•Œ ๋‚ด๋ถ€ ๋ฐฐ์—ด์—์„œ ์ฝ์Šต๋‹ˆ๋‹ค. 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๊ฐ€ ๋” ๋‚˜์€ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ œ๊ฐ€ ์•„๋Š” ํ•œ ์ฝ”๋“œ๊ฐ€ ๋” ๊ธธ์–ด์กŒ์Šต๋‹ˆ๋‹ค."

"์ฒซ์งธ, ArrayList๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•ญ์ƒ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์ž‘์—…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๋ฐฐ์—ด์€ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ตฌ๋ฉ์„ ๋‚จ๊ธฐ์ง€ ์•Š๊ณ  ๋ฐฐ์—ด ์ค‘๊ฐ„์—์„œ ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. "

"๋‘ ๋ฒˆ์งธ, ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜ ์ด์ƒ์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜์ง€๋งŒ ๋‚ด๋ถ€ ๋ฐฐ์—ด์— ์—ฌ์œ  ์Šฌ๋กฏ์ด ์—†๋Š” ๊ฒฝ์šฐ ArrayList ๋‚ด๋ถ€์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์ด ๋ฐœ์ƒ ํ•ฉ๋‹ˆ๋‹ค .

a) ํ˜„์žฌ ๋‚ด๋ถ€ ๋ฐฐ์—ด๋ณด๋‹ค 50% ๋” ํฐ ๋‹ค๋ฅธ ๋ฐฐ์—ด๊ณผ ํ•˜๋‚˜์˜ ์š”์†Œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

b) ์ด์ „ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ƒˆ ๋ฐฐ์—ด๋กœ ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค.

c) ์ƒˆ ๋ฐฐ์—ด์€ ArrayList ๊ฐœ์ฒด์˜ ๋‚ด๋ถ€ ๋ฐฐ์—ด๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฐฐ์—ด์€ ์“ฐ๋ ˆ๊ธฐ๋กœ ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค (๋‹จ์ง€ ํ•ด๋‹น ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ฐธ์กฐ ์ €์žฅ์„ ์ค‘์ง€ํ•จ)."

์ •๋ ฌ ๋ฐฐ์—ด๋ชฉ๋ก
๋ฐฐ์—ด ๋์— ์š”์†Œ ์ถ”๊ฐ€
์ด ์ž‘์—…์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
list.add(s);
๋ฐฐ์—ด ์ค‘๊ฐ„์— ์š”์†Œ ์ถ”๊ฐ€
์ด ์ž‘์—…์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
list.add(15, s);
๋ฐฐ์—ด์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์š”์†Œ ์ถ”๊ฐ€
์ด ์ž‘์—…์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
list.add(0, s);
๋ฐฐ์—ด์—์„œ ์š”์†Œ ์‚ญ์ œ
๋กœ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค list[3] = null. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์–ด๋ ˆ์ด์— '๊ตฌ๋ฉ'์„ ๋‚จ๊ธธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
list.remove(3);

"์ด ArrayList๋กœ ์–ด๋–ป๊ฒŒ ์ž‘์—…ํ•ฉ๋‹ˆ๊นŒ?"

"์‹ค์ œ๋กœ ์ผ๋ฐ˜ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ณด์„ธ์š”. ArrayList ์ž‘์—…์„ ๋ฐฐ์—ด ์ž‘์—…๊ณผ ๋น„๊ตํ•ด ๋ด…์‹œ๋‹ค. ' 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] );
}
}
ArrayList ์‚ฌ์šฉ
public static void main(String[] args)
{
Reader r = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(r);

// Read strings from the keyboard
ArrayList&ltString> list = new ArrayList&ltString>();
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) );
}
}

๊ฐ ์—ด์—์„œ ์œ ์‚ฌํ•œ ์ž‘์—…์„ ๊ฐ•์กฐํ•˜๊ธฐ ์œ„ํ•ด ๋™์ผํ•œ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค."

"ํ•œํŽธ์œผ๋กœ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ•œํŽธ์œผ๋กœ๋Š” ์—ฌ์ „ํžˆ ๋™์ผํ•ฉ๋‹ˆ๋‹ค."

"๋งž์•„์š”. ArrayList ๋กœ ์ž‘์—…ํ•  ๋•Œ ๋Œ€๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ๋งŒ ๋นผ๋ฉด์š”. ๋Œ€์‹  get , set ๋ฐ add ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค ."

"๋„ค, ์ด๋งŒํผ ๋ชจ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋„ˆ๋ฌด ๋˜‘๊ฐ™์•„ ๋ณด์—ฌ์š”."