[JAVA] 8. ๋ฐฐ์—ด

2022. 4. 8. 23:09ใ†JAVA/์ž๋ฐ”์˜ ์ •์„

728x90

1๏ธโƒฃ ๋ฐฐ์—ด Array

๊ฐ™์€ ํƒ€์ž…์˜ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์„ ๋ฐฐ์—ด์ด๋ผ๊ณ  ํ•œ๋‹ค. 

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ '๊ฐ™์€ ํƒ€์ž…' ์ด์–ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค!! ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋ฐฐ์—ด์€ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค. 

int[] num = {1, 2, 3, 4, 5};

 

2๏ธโƒฃ ๋ฐฐ์—ด์˜ ์„ ์–ธ๊ณผ ์ƒ์„ฑ 

๋ฐฐ์—ด ์„ ์–ธ ๋ฐฉ๋ฒ•์€ ์›ํ•˜๋Š” ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , ๋ณ€์ˆ˜ ๋˜๋Š” ํƒ€์ž…์— ๋ฐฐ์—ด์ž„์„ ์˜๋ฏธํ•˜๋Š” ๋Œ€๊ด„ํ˜ธ[]๋ฅผ ๋ถ™์ด๋ฉด ๋œ๋‹ค. 

ํƒ€์ž…[] ๋ณ€์ˆ˜์ด๋ฆ„;

 

๋ฐฐ์—ด์˜ ์ƒ์„ฑ

: ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ง€ ์ƒ์„ฑ๋œ ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„์ด ๋งŒ๋“ค์–ด์งˆ ๋ฟ์ด๊ณ , ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด์•ผ๋งŒ ๋น„๋กœ์†Œ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฐ์‚ฐ์ž new ์™€ ํ•จ๊ป˜ ๋ฐฐ์—ด์˜ ํƒ€์ž…๊ณผ ๊ธธ์ด๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค. 

ํƒ€์ž…[] ๋ณ€์ˆ˜์ด๋ฆ„ = new ํƒ€์ž…[๊ธธ์ด];

 

3๏ธโƒฃ ๋ฐฐ์—ด์˜ ๊ธธ์ด์™€ ์ธ๋ฑ์Šค 

์ƒ์„ฑ๋œ ๋ฐฐ์—ด์˜ ๊ฐ ์ €์žฅ๊ณต๊ฐ„์„ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ฐฐ์—ด์ด๋ฆ„[์ธ๋ฑ์Šค]์˜ ํ˜•์‹์œผ๋กœ ๋ฐฐ์—ด์˜ ์š”์†Œ์— ์ ‘๊ทผํ•œ๋‹ค. 

์ธ๋ฑ์Šค๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋งˆ๋‹ค ๋ถ™์—ฌ์ง„ ์ผ๋ จ๋ฒˆํ˜ธ๋กœ ๊ฐ ์š”์†Œ๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. 

์ธ๋ฑ์Šค์˜ ๋ฒ”์œ„๋Š” 0๋ถ€ํ„ฐ ๋ฐฐ์—ด๊ธธ์ด -1 ๊นŒ์ง€ 

 

๋ฐฐ์—ด์„ ๋‹ค๋ฃฐ ๋•Œ ํ•œ๊ฐ€์ง€ ์ฃผ์˜ํ•ด์•ผํ•  ์ ์€ index์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฐ’์„ index๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. 

์œ ํšจํ•œ ๋ฒ”์œ„์˜ ๊ฐ’์„ index๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ „์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋จธ ์ฑ…์ž„์ด๊ณ , ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์„ index๋กœ ์‚ฌ์šฉํ•˜๋ฉด, ๋ฌด์‚ฌํžˆ ์ปดํŒŒ์ผ์„ ๋งˆ์ณค๋”๋ผ๋„ ์‹คํ–‰ ์‹œ์— ์—๋Ÿฌ ArrayIndexOutOfBoundsException์ด ๋ฐœ์ƒํ•œ๋‹ค. 

 

๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜

๋ฐฐ์—ด์„ ์ƒ์„ฑํ•  ๋•Œ ๊ด„ํ˜ธ[] ์•ˆ์— ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ ์–ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ์˜ ๊ฐœ์ˆ˜, ์ฆ‰ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์˜ ๊ฐœ์ˆ˜์ด๋‹ค. 

 

๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” int๋ฒ”์œ„์˜ ์–‘์˜ ์ •์ˆ˜(0๋„ ํฌํ•จ)์ด์–ด์•ผํ•œ๋‹ค. 

 

๋ฐฐ์—ด์ด๋ฆ„.length;

-> ์ž๋ฐ”์—์„œ๋Š” JVM์ด ๋ชจ๋“  ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. 

๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ํ•œ๋ฒˆ ์ƒ์„ฑํ•˜๋ฉด ๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฏธ ์ƒ์„ฑ๋œ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. 

For๋ฌธ์—์„œ๋Š” ์กฐ๊ฑด์‹์˜ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ง์ ‘ ์ ์–ด์ฃผ๋Š” ๊ฒƒ๋ณด๋‹ค '๋ฐฐ์—ด์ด๋ฆ„.length'๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

 

๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋” ํฐ ๊ธธ์ด์˜ ๋ฐฐ์—ด์„ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ , ๊ธฐ์กด์˜ ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๊ฐ’๋“ค์„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ๋ณต์‚ฌํ•˜๋ฉด ๋œ๋‹ค. 

 

 

4๏ธโƒฃ ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐํ™”

: ๋ฐฐ์—ด์€ ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์ž๋™์ ์œผ๋กœ ์ž์‹ ์˜ ํƒ€์ž…์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜๋ฏ€๋กœ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋”ฐ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ, ์›ํ•˜๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ ์š”์†Œ๋งˆ๋‹ค ๊ฐ’์„ ์ง€์ •ํ•ด ์ค˜์•ผํ•œ๋‹ค. 

 

int[] num = new int[] {50, 60, 70, 80};
int[] num = {50, 60, 70, 80}; -> new int[] ์ƒ๋žต ๊ฐ€๋Šฅ 

 

5๏ธโƒฃ ๋ฐฐ์—ด์˜ ์ถœ๋ ฅ

Arrays.toString(๋ฐฐ์—ด์ด๋ฆ„)

 

int[] iArr = {100, 95, 90, 80, 60}; 
System.out.println(iArr); -> [I@45645bb ์™€ ๊ฐ™์€ ํ˜•์‹์˜ ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋œ๋‹ค. 

-> iArr์€ ์ฐธ์กฐ๋ณ€์ˆ˜๋‹ˆ๊นŒ ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’, ์ฆ‰ ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๊ฐ€ ์ถœ๋ ฅ๋  ๊ฒƒ์ด๋‹ค. (ํƒ€์ž…@์ฃผ์†Œ)

 

6๏ธโƒฃ ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ

๋ฐฐ์—ด์€ ํ•œ๋ฒˆ ์ƒ์„ฑํ•˜๋ฉด ๊ทธ ๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ ์ €์žฅ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ๋ณด๋‹ค ํฐ ๋ฐฐ์—ด์„ ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ  ์ด์ „ ๋ฐฐ์—ด๋กœ๋ถ€ํ„ฐ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•ด์•ผํ•œ๋‹ค. 

System.arraycopy()

-> For๋ฌธ ๋Œ€์‹ ์— System ํด๋ž˜์Šค์˜ arraycopy()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

for๋ฌธ์€ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜์— ์ ‘๊ทผํ•ด์„œ ๋ณต์‚ฌํ•˜์ง€๋งŒ, arraycopy()๋Š” ์ง€์ •๋œ ๋ฒ”์œ„์˜ ๊ฐ’๋“ค์„ ํ•œ๋ฒˆ์— ํ†ต์งธ๋กœ ๋ณต์‚ฌํ•œ๋‹ค. 

 

7๏ธโƒฃ ๋ฐฐ์—ด์˜ ํ™œ์šฉ

-> numArr[0]๊ณผ numArr[n]์˜ ๊ฐ’์„ ์„œ๋กœ ๋ฐ”๊พผ๋‹ค.

 

-> 1๋ถ€ํ„ฐ 45๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ์“ฐ์ธ ์นด๋“œ๋ฅผ ์ž˜ ์„ž์€ ๋‹ค์Œ 6์žฅ ๊บผ๋‚ด๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. 

 

๋ฒ„๋ธ” ์ •๋ ฌ 

-> ๋น„๊ต ํšŸ์ˆ˜๋Š” ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ณด๋‹ค 1 ์ž‘์€ ๊ฐ’์ด๋‹ค. 

-> ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์ž‘์—…์„ ์œ„ํ•ด changed๋ผ๋Š” booleanํ˜• ๋ณ€์ˆ˜๋ฅผ ๋‘์–ด์„œ ์ž๋ฆฌ๋ฐ”๊ฟˆ์ด ์—†์œผ๋ฉด break๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ •๋ ฌ์„ ๋งˆ์น˜๋„๋ก ํ–ˆ๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90