[Java] Ch.5 ๋ฐฐ์—ด

yoons(์ด์œค์„œ)ยท2024๋…„ 6์›” 24์ผ

[Java] ์ž๋ฐ”์˜ ์ •์„

๋ชฉ๋ก ๋ณด๊ธฐ
5/14

๐Ÿ‘‰๐Ÿป ์ด ๊ธ€์€ ์ž๋ฐ”์˜ ์ •์„(3ํŒ) Chapter5๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ์“ด ๊ธ€์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋ฐฐ์—ด(Array)

	ํƒ€์ž…[] ๋ณ€์ˆ˜์ด๋ฆ„;		// ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ๋ณ€์ˆ˜ ์„ ์–ธ
    ๋ณ€์ˆ˜์ด๋ฆ„ = new ํƒ€์ž…[๊ธธ์ด];		// ๋ฐฐ์—ด์„ ์ƒ์„ฑ(์‹ค์ œ ์ €์žฅ๊ณต๊ฐ„ ์ƒ์„ฑ)
    
    ํƒ€์ž…[] ๋ณ€์ˆ˜์ด๋ฆ„ = new ํƒ€์ž…[๊ธธ์ด];
    ํƒ€์ž…[] ๋ณ€์ˆ˜์ด๋ฆ„ = new ํƒ€์ž…[] { 50, 60, 70, 80, 90 };  // ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐํ™”
    

๐Ÿง‘โ€๐Ÿ’ป ๊ธธ์ด๊ฐ€ 0์ธ ๋ฐฐ์—ด๋„ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.( new int[0]; )
์ž๋ฐ”์—์„œ๋Š” JVM์ด ๋ชจ๋“  ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, '๋ฐฐ์—ด์ด๋ฆ„.length'๋กœ ๋ฐฐ์—ด ๊ธธ์ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

๋ฐฐ์—ด์€ ํ•œ๋ฒˆ ์ƒ์„ฑํ•˜๋ฉด ๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. -> ๋ฐฐ์—ด ๊ธธ์ด๋Š” ์ƒ์ˆ˜๋‹ค.

  • ๋ฐฐ์—ด ๊ธธ์ด ๋ณ€๊ฒฝํ•˜๋Š” ๋ฒ•
    โžก๏ธ ๋” ํฐ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด์„œ ๊ธฐ์กด์˜ ๋ฐฐ์—ด์„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ๋ณต์‚ฌํ•œ๋‹ค.

๐Ÿ“– ๋ฐฐ์—ด์˜ ์ถœ๋ ฅ, ๋ณต์‚ฌ

๋ฐ”๋กœ System.out.println()์œผ๋กœ ์ถœ๋ ฅํ•  ๊ฒฝ์šฐ 'ํƒ€์ž…@์ฃผ์†Œ'ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ์ด ๋œ๋‹ค.
(char ์˜ˆ์™ธ)
-> ๋ฐฐ์—ด for๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ์ถœ๋ ฅ.

  • ๋ฐฐ์—ด ๋ณต์‚ฌ

    - for๋ฌธ์„ ์ด์šฉํ•œ ๋ฐฐ์—ด ๋ณต์‚ฌ
    1. ๊ธฐ์กด ๋ฐฐ์—ด๋ณด๋‹ค ๊ธธ์ด๊ฐ€ 2๋ฐฐ์ธ ๋ฐฐ์—ด tmp์ƒ์„ฑ
    2. for๋ฌธ์œผ๋กœ arr[i]์˜ ๊ฐ’์„ tmp[i]์— ์ €์žฅ
    3. arr = tmp; // ์ฐธ์กฐ๋ณ€์ˆ˜ arr๊ฐ€ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.

    - System.arraycopy()๋ฅผ ์ด์šฉํ•œ ๋ณต์‚ฌ
    : System.arraycopy(num, 0, newNum, 0, num.length);
    num[0]์—์„œ newNum[0]์œผ๋กœ num.length๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ.


๐Ÿ“Œ String ๋ฐฐ์—ด

	String[] name = new String[3];	// 3๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด ์ƒ์„ฑ
    String[] name = new String[]{"Kim", "Lee", "Yi"}; // ์ดˆ๊ธฐํ™”

๊ธฐ๋ณธํ˜• ๋ฐฐ์—ด์ด ์•„๋‹Œ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์˜ ์ฃผ์†Œ์ด๋‹ค. -> ๊ฐ์ฒด ๋ฐฐ์—ด

String ํด๋ž˜์Šค๋Š” char๋ฐฐ์—ด์— ๊ธฐ๋Šฅ(๋ฉ”์„œ๋“œ)๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒƒ์ด๋‹ค.

๋ฉ”์„œ๋“œ์„ค๋ช…
char charAt(int index)ํ•ด๋‹น index์— ์žˆ๋Š” ๋ฌธ์ž ๋ฐ˜ํ™˜
int length()๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๋ฐ˜ํ™˜
String substring(int from, int to)๋ฌธ์ž์—ด์—์„œ from~to์˜ ๋ฒ”์œ„์— ์žˆ๋Š” ๋ฌธ์ž ๋ฐ˜ํ™˜
boolean equals(String str)๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์ด ๊ฐ™์€์ง€ ํ™•์ธ
char[] toCharArray()๋ฌธ์ž์—ด์„ char[ ]๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋ฐ˜ํ™˜

๐Ÿ“Œ ๋‹ค์ฐจ์› ๋ฐฐ์—ด

๐Ÿ“– 2์ฐจ์› ๋ฐฐ์—ด

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

int [][] score = new int[4][3];	// 4ํ–‰ 3์—ด์˜ 2์ฐจ์› ๋ฐฐ์—ด

-> ๊ฐ ์š”์†Œ์—๋Š” ๋ฐฐ์—ด์š”์†Œ ํƒ€์ž…์˜ ๊ธฐ๋ณธ๊ฐ’์ด ์ž๋™์ €์žฅ๋œ๋‹ค.
(ex. int ๋Š” 0 ์ €์žฅ)

int [][] arr = new int[][] { {1, 2, 3},
							 {4, 5, 6} };	// ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐํ™”
       

โš ๏ธ ํ–ฅ์ƒ๋œ for๋ฌธ์„ ์ด์šฉํ•  ๋•Œ

    	for(int i:score) {		// Error! 2์ฐจ์› ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋Š” 1์ฐจ์› ๋ฐฐ์—ด์ž„.
        	sum += 1;
        }

--> โœ–๏ธ Error!

		for(int[] tmp : score) {	// 1์ฐจ์› ๋ฐฐ์—ด ์ฃผ์†Œ
        	for(int i: tmp) {
            	sum += i;
            }
        }

--> ๐Ÿ™†๐Ÿปโ€โ™€๏ธ ์ฝ์–ด์˜ฌ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๋ณ€๊ฒฝ์€ ๋ถˆ๊ฐ€๋Šฅ

๐Ÿ“– ๊ฐ€๋ณ€ ๋ฐฐ์—ด

๋ณด๋‹ค ์ž์œ ๋กœ์šด ํ˜•ํƒœ์˜ ๋ฐฐ์—ด.
๋‘ ๋ฒˆ์งธ ์ฐจ์›์˜ ๊ธธ์ด๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

profile
๊ฐœ๋ฐœ๊ณต๋ถ€ํ•˜๋Š” ์ž ๋งŒ๋ณด

0๊ฐœ์˜ ๋Œ“๊ธ€