1. ๋ชจ๋“  ํด๋ž˜์Šค ์ƒ์†Object

Java์˜ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” ์•”์‹œ์ ์œผ๋กœ Objectํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค.

Java Core ํƒ๊ตฌ์—์„œ ์ƒ์†์ด ๋ฌด์—‡์ด๋ฉฐ Java์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ถ„์„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ์‚ฌ์‹ค ํ•˜๋‚˜๋ฅผ ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ํด๋ž˜์Šค์˜ ๊ฐœ์ฒด๋ฅผ Object๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ:

์•”ํ˜ธ ๋ฉ”๋ชจ
Object o = new Scanner(System.in);
๋ณ€์ˆ˜ ๋Š” ๊ฐœ์ฒด o์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.Scanner
Object o = new String();
๋ณ€์ˆ˜ ๋Š” ๊ฐœ์ฒด o์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.String
Object o = new Integer(15);
๋ณ€์ˆ˜ ๋Š” ๊ฐœ์ฒด o์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.Integer
Object o = "Hello";
๋ณ€์ˆ˜ ๋Š” ๊ฐœ์ฒด o์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.String

์ด๊ฒƒ์€ ์ข‹์€ ์†Œ์‹์ด ๋๋‚˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ณ€์ˆ˜ ์— ์ €์žฅ๋œ ๊ฐœ์ฒด์˜ ์›๋ž˜ ์œ ํ˜•์„ ์ถ”์ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ €์žฅ๋œ ๊ฐœ์ฒด์—์„œ ํด๋ž˜์Šค ์˜ ๋ฉ”์„œ๋“œ ์ด์™ธ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค .Object Object

๊ฐœ์ฒด์˜ ์›๋ž˜ ์œ ํ˜•๊ณผ ์—ฐ๊ฒฐ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ํ•ด๋‹น ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ์œ ํ˜•์˜ ๋ณ€์ˆ˜์— ์ €์žฅํ•œ ๋‹ค์Œ ํ•ด๋‹น ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธ ๋ฉ”๋ชจ
Object o = new Scanner(System.in);
int x = o.nextInt();
ํ”„๋กœ๊ทธ๋žจ์ด ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค ์—๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ Object์—†์Šต๋‹ˆ๋‹ค nextInt().
Object o = new Scanner(System.in);

Scanner console = (Scanner) o;

int x = console.nextInt();
์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” typecast ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด

์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ณ€์ˆ˜ Scanner์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค . Scanner

๋ณ€์ˆ˜๊ฐ€ ๊ฐœ์ฒด ์ฐธ์กฐ๋ฅผ ์ €์žฅ Objectํ•˜๋”๋ผ๋„ ์Šค์บ๋„ˆ ๋ณ€์ˆ˜์— ๋ณ€์ˆ˜๋ฅผ ํ• ๋‹นํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค . ObjectScanner๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” typecast ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ผ๋ฐ˜์ ์ธ ๋ชจ์Šต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Type name1 = (Type) name2;

์—ฌ๊ธฐ์„œ name1๋Š” ๋ณ€์ˆ˜ ์ด๋ฆ„ Type์ด๊ณ  ๋Š” ๊ฐœ์ฒด ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜ name2์ด๋ฆ„์ž…๋‹ˆ๋‹ค .ObjectType

ํƒ€์ž…์บ์ŠคํŒ…

๋ณ€์ˆ˜์˜ ์œ ํ˜•๊ณผ ๊ฐ์ฒด์˜ ์œ ํ˜•์ด ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด a๊ฐ€ ClassCastException๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ:

์•”ํ˜ธ ๋ฉ”๋ชจ
Object o = new Integer(5);
String s = (String) o;
๋Ÿฐํƒ€์ž„ ์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ
a๊ฐ€ ClassCastException๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Java์—์„œ ์ด ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐœ์ฒด์˜ ์œ ํ˜•์„ ํ™•์ธํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค .

name instanceof Type

์—ฐ์‚ฐ์ž ๋Š” ๋ณ€์ˆ˜๊ฐ€ ๊ฐ์ฒด์ธ์ง€ instanceof์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค .nameType

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์–‘ํ•œ ๊ฐœ์ฒด์˜ ๋ฐฐ์—ด์—์„œ ๋ฌธ์ž์—ด์„ ์ฐพ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธ ๋ฉ”๋ชจ
Object[] objects = {10, "Hello", 3.14};

for (int i = 0; i < objects.length; i++)
{
   if (objects[i] instanceof String)
   {
      String s = (String) objects[i];
      System.out.println(s);
   }
}
IntegerAutoboxing์€ ์ด ๊ฐ’์„ ๊ฐ๊ฐ , String๋ฐ ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค Double.

๊ฐ์ฒด์˜ ๋ฐฐ์—ด์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์ฒด๊ฐ€ a์ด๋ฉด ๋ณ€์ˆ˜ String

์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค . ๋ณ€์ˆ˜๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. String


2. ์ œ๋„ค๋ฆญ์ด ๋“ฑ์žฅํ•œ ์ด์œ  โ€” ์ปฌ๋ ‰์…˜

์ปฌ๋ ‰์…˜์œผ๋กœ ๋Œ์•„๊ฐ€ ๋ด…์‹œ๋‹ค.

Java ๊ฐœ๋ฐœ์ž๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์ž๋งˆ์ž ArrayList๋ชจ๋“  ์œ ํ˜•์˜ ๊ฐœ์ฒด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฒ”์šฉ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. Object๊ทธ๋ž˜์„œ ๊ทธ๋“ค์€ ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด s ์˜ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค .

์ด ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์žฅ์ ์€ ๋ชจ๋“  ์œ ํ˜•์˜ ๊ฐœ์ฒด๋ฅผ ์ปฌ๋ ‰์…˜์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๋ช‡ ๊ฐ€์ง€ ์•ฝ์ ์ด ์žˆ๋‹ค.

๋‹จ์  1.

์ปฌ๋ ‰์…˜์—์„œ ์š”์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ํ•ญ์ƒ ํ˜•์‹ ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธ ๋ฉ”๋ชจ
ArrayList numbers = new ArrayList();


for (int i = 0; i < 10; i++)
   numbers.add(i * 10);


int sum = 0;
for (int i = 0; i < 10; i++)
{
   sum = sum + (Integer) numbers.get(i);
}
Object๊ฐœ์ฒด ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ปฌ๋ ‰์…˜ ๋งŒ๋“ค๊ธฐ ์ปฌ๋ ‰์…˜์„

์ˆซ์ž 10, 20, ... ๋กœ ์ฑ„์›๋‹ˆ๋‹ค 100.



์ปฌ๋ ‰์…˜์˜ ์š”์†Œ ํ•ฉ๊ณ„


Typecasting์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‹จ์  2.

์ปฌ๋ ‰์…˜์— ํŠน์ • ์œ ํ˜•์˜ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธ ๋ฉ”๋ชจ
ArrayList numbers = new ArrayList();


for (int i = 0; i < 10; i++)
   numbers.add(i * 2.5);


int sum = 0;
for (int i = 0; i < 10; i++)
{
   sum = sum + (Integer) numbers.get(i);
}
Object๊ฐœ์ฒด ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜ ๋งŒ๋“ค๊ธฐ ๊ฐœ์ฒด

๋กœ ํ‘œ์‹œ๋œ ์ˆซ์ž๋กœ ์ปฌ๋ ‰์…˜์„ ์ฑ„์›๋‹ˆ๋‹ค . , , , ... ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ ํ•ฉ๊ณ„ ์˜ค๋ฅ˜ ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.Double
0.02.55.0





DoubleInteger

๋ฐ์ดํ„ฐ๋Š” ์–ด๋””์—์„œ๋‚˜ ์ปฌ๋ ‰์…˜์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ
  • ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ
  • ํŒŒ์ผ์—์„œ
  • ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด

๋‹จ์  3.

์ปฌ๋ ‰์…˜์˜ ๋ฐ์ดํ„ฐ๋Š” ์‹ค์ˆ˜๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋กœ ์ฑ„์›Œ์ง„ ์ปฌ๋ ‰์…˜์„ ์ผ๋ถ€ ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž‘์„ฑํ•œ ์ด ๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ปฌ๋ ‰์…˜์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ปฌ๋ ‰์…˜์˜ ์ด๋ฆ„์€ ์—ฌ๊ธฐ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณ€์ˆ˜์— ๋ช…ํ™•ํ•œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋”๋ผ๋„ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ 12๊ฐ€์ง€ ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋Š” ๋ณ€์ˆ˜์˜ ์›๋ž˜ ์ด๋ฆ„์— ๋Œ€ํ•ด ์ „ํ˜€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.


3. ์ œ๋„ค๋ฆญ

์ž๋ฐ”์˜ ์ œ๋„ค๋ฆญ

Java์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ์ œ๋„ค๋ฆญ์ด๋ผ๋Š” ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์œผ๋กœ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

Java์—์„œ ์ œ๋„ค๋ฆญ์€ ์œ ํ˜•์— ์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋ณตํ•ฉ ๋ณตํ•ฉ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณตํ•ฉ ์œ ํ˜•์˜ ์ผ๋ฐ˜์ ์ธ ๋ณด๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ClassName<TypeParameter>

์ผ๋ฐ˜ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ‰์†Œ์— ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ณณ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธ ์„ค๋ช…
ArrayList<Integer> list;
๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ
list = new ArrayList<Integer> ();
๊ฐœ์ฒด ๋งŒ๋“ค๊ธฐ
ArrayList<Integer>[] array;
์–ด๋ ˆ์ด ์ƒ์„ฑ

Integer์ด๋Ÿฌํ•œ ์ปฌ๋ ‰์…˜์—๋Š” ๋ณ€์ˆ˜ ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธ ์„ค๋ช…
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(new Integer(1));
list.add(2);
list.add("Hello");
ArrayListInteger์š”์†Œ ๊ฐ€ ํฌํ•จ๋œ ์ปฌ๋ ‰์…˜
์ด๊ฒƒ์€ ํ—ˆ์šฉ๋˜๋ฉฐ
์ด๊ฒƒ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์˜คํ† ๋ฐ•์‹ฑ

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: ์ปดํŒŒ์ผ ์˜ค๋ฅ˜

Java Collections ํ€˜์ŠคํŠธ์—์„œ ์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์‹ ๋งŒ์˜ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ์ž‘๋™ ๋ฐฉ์‹์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


4. ์ œ๋„ค๋ฆญ ์ž‘๋™ ๋ฐฉ์‹

์‹ค์ œ๋กœ ์ œ๋„ค๋ฆญ์€ ๋งค์šฐ ์›์‹œ์ ์ž…๋‹ˆ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹จ์ˆœํžˆ ์ œ๋„ค๋ฆญ ํ˜•์‹์„ ์ผ๋ฐ˜ ํ˜•์‹์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ๋„ค๋ฆญ ํ˜•์‹์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ˜•์‹ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์บ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•ด ํ˜•์‹ ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•˜๋Š” ์ผ
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList list = new ArrayList();
list.add(1);
list.add( (Integer) 1 );
int x = list.get(0);
int x = (Integer) list.get(0);
list.set(0, 10);
list.set(0, (Integer) 10);

์ •์ˆ˜ ์ปฌ๋ ‰์…˜์˜ ์ˆซ์ž๋ฅผ ํ•ฉ์‚ฐํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•˜๋Š” ์ผ
public int sum(ArrayList<Integer> numbers)
{
   int result = 0;

   for (int i = 0; i < numbers.size(); i++)
      result = result + numbers.get(i);

   return result;
}
public int sum(ArrayList numbers)
{
   int result = 0;

   for (int i = 0; i < numbers.size(); i++)
      result = result + (Integer) numbers.get(i);

   return result;
}

์ฆ‰, ์ œ๋„ค๋ฆญ์€ autoboxing๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ์กฐ๊ธˆ ๋” ๋งŽ์€ ๊ตฌ๋ฌธ ์„คํƒ•์˜ ์ผ์ข…์ž…๋‹ˆ๋‹ค. int์˜คํ† ๋ฐ•์‹ฑ์„ ํ†ตํ•ด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” an์„ an์œผ๋กœ Integer๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ ํ•˜๊ณ  ์ œ๋„ค๋ฆญ์˜ ๊ฒฝ์šฐ typecast ์—ฐ์‚ฐ์ž๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜ ํด๋ž˜์Šค๋ฅผ ์ปดํŒŒ์ผํ•œ ํ›„ ์ผ๋ฐ˜ ํด๋ž˜์Šค ๋ฐ ์œ ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋กœ ๊ฐ„๋‹จํžˆ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ œ๋„ค๋ฆญ ํ˜•์‹์˜ ๋ณ€์ˆ˜์— ์ „๋‹ฌ๋œ ํ˜•์‹ ์ธ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์†์‹ค๋ฉ๋‹ˆ๋‹ค. ์ด ํšจ๊ณผ๋ฅผ ์œ ํ˜• ์‚ญ์ œ ๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค .

๋•Œ๋กœ ์ผ๋ฐ˜ ํด๋ž˜์Šค(์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ํด๋ž˜์Šค)๋ฅผ ์ž‘์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์‹ค์ œ๋กœ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ์œ ํ˜•์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Java Collections ํ€˜์ŠคํŠธ์—์„œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ˆ˜๋ฐ˜๋˜๋Š” ์‚ฌํ•ญ์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.



5. ์ œ๋„ค๋ฆญ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์‚ฌ์‹ค

๋‹ค์Œ์€ ์ œ๋„ค๋ฆญ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ํฅ๋ฏธ๋กœ์šด ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค.

ํด๋ž˜์Šค๋Š” ์—ฌ๋Ÿฌ ์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค.

ClassName<TypeParameter1, TypeParameter2, TypeParameter3>

์‚ฌ์‹ค ์ด๊ฒƒ์€ ๋ณ„๋กœ ๋†€๋ผ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•˜๋‚˜์˜ ์œ ํ˜•์œผ๋กœ ์บ์ŠคํŠธํ•  ์—ฐ์‚ฐ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ณณ์—์„œ ์—ฌ๋Ÿฌ ์œ ํ˜• ์บ์ŠคํŠธ โ€‹โ€‹์—ฐ์‚ฐ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ:

์•”ํ˜ธ ๋ฉ”๋ชจ
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(7, "Hello");
map.put(-15, "Hello");
๋ฉ”์„œ๋“œ put์˜ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” Integer์ด๊ณ  ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š”String

์ œ๋„ค๋ฆญ ์œ ํ˜•๋„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค.

ClassName<TypeParameter<TypeParameterParameter>>

๋ฌธ์ž์—ด ๋ชฉ๋ก์„ ์ €์žฅํ•  ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

// List of greetings
ArrayList<String> listHello = new ArrayList<String>();
listHello.add ("Hello");
listHello.add ("Hi");

// List of goodbyes
ArrayList<String> listBye = new ArrayList<String>();
listBye.add("Bye");
listBye.add ("Goodbye");

// List of lists
ArrayList<ArrayList<String>> lists = new ArrayList<ArrayList<String>>();
lists.add(listHello);
lists.add(listBye);

์ผ๋ฐ˜ ์œ ํ˜•(์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ์œ ํ˜•)๋„ ๋ฐฐ์—ด ์œ ํ˜•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค.

ClassName<TypeParameter>[] array = new ClassName<TypeParameter>[size];

์—ฌ๊ธฐ์—๋Š” ๋งˆ๋ฒ• ๊ฐ™์€ ์ผ์ด ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊บพ์‡  ๊ด„ํ˜ธ๋Š” ์œ ํ˜• ์ด๋ฆ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์•”ํ˜ธ ์ œ๋„ค๋ฆญ์ด ์•„๋‹Œ ๋Œ€์‘๋ฌผ
ArrayList<String>[] list = new ArrayList<String>[10];
StringArrayList[] list = new StringArrayList[10];
ArrayList<Integer>[] list = new ArrayList<Integer>[10];
IntegerArrayList[] list = new IntegerArrayList[10];
ArrayList<Scanner>[] list = new ArrayList<Scanner>[10];
ScannerArrayList[] list = new ScannerArrayList[10];