๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

STUDY/JAVA

JAVA - ๋‹ค์ฐจ์› ๋ฐฐ์—ด

๋ฐ˜์‘ํ˜•

๋‹ค์ฐจ์› ๋ฐฐ์—ด

2์ฐจ์› ๋ฐฐ์—ด ? 
   ์ˆ˜ํ•™์˜ ํ–‰๋ ฌ์„ ๋– ์˜ฌ๋ฆฌ๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด๋ฐ
   ๊ฐ€๋กœ์ธ๋ฑ์Šค์™€ ์„ธ๋กœ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
int[][] scores = new int [2][3];

์œ„์™€๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 2ํ–‰,3์—ด์˜ ๋ฐฐ์—ด์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.

(0,0)  (0,1)  (0,2)

(1,0)  (1,1)  (1,2)

 

์ด ๋•Œ, ์Šคํƒ์˜์—ญ์—๋Š” scores๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๊ณ 

ํž™ ์˜์—ญ์— int ํƒ€์ž… ๋ฐฐ์—ด A, int ํƒ€์ž… ๋ฐฐ์—ด B, int ํƒ€์ž… ๋ฐฐ์—ด C ์„ธ ๊ฐœ์˜ ๋ฐฐ์—ด๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

//๊ฐ๊ฐ์˜ ๊ธธ์ด๋Š”

scores.lenght     //2(A๊ธธ์ด)
scores[0].lenght  //3(B๊ธธ์ด) 0๋ฒˆ์งธ ํ–‰์˜ ๊ธธ์ด
scores[1].lenght  //3(C๊ธธ์ด) 1๋ฒˆ์งธ ํ–‰์˜ ๊ธธ์ด

 

์ž๋ฐ”๋Š” ์ผ์ฐจ์› ๋ฐฐ์—ด์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ๊ตฌ์กฐ๋กœ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ๊ตฌํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„๋‹จ์‹ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

int[][] scores = new int[2][];
scores[0] = new int[2]
scores[1] = new int[3]

//์ด๋•Œ ๊ฐ๊ฐ ๊ธธ์ด๋Š”
scores.lenght     //2(A๊ธธ์ด)
scores[0].lenght  //2(B๊ธธ์ด) 0๋ฒˆ์งธ ํ–‰์˜ ๊ธธ์ด
scores[1].lenght  //3(C๊ธธ์ด) 1๋ฒˆ์งธ ํ–‰์˜ ๊ธธ์ด

์ด๋Ÿฐ ํ˜•ํƒœ์˜ ๋ฐฐ์—ด์€ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์•Œ๊ณ  ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ArrayIndexOutOfBoundsException ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

 

 

๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฐฐ์—ด

String์€ ํด๋ž˜์Šค ํƒ€์ž…์ด๋ฏ€๋กœ String[]๋ฐฐ์—ด์€ ๊ฐ ํ•ญ๋ชฉ์— ๋ฌธ์ž์—ด ๊ฐ’์ด ์•„๋‹Œ String ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

String[] strArray = new String[3];
strArray[0] = "java";
strArray[1] = "C++";
strArray[2] = "C#";

์œ„ ์ฝ”๋“œ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด

 

๋”ฐ๋ผ์„œ String[] ๋ฐฐ์—ด์˜ ํ•ญ๋ณต๋„ String ๋ณ€์ˆ˜์™€ ๋™์ผํ•˜๊ฒŒ ์ทจ๊ธ‰๋˜์–ด์•ผ ํ•œ๋‹ค.

	String[] strArray = new String[3];
	strArray[0] = "java";
	strArray[1] = "java";
	strArray[2] = new String("java");
			
	System.out.println(strArray[0] == strArray[1]);       //true
	System.out.println(strArray[0] == strArray[2]);       //false
	System.out.println(strArray[0].equals(strArray[2]));  //true

 

๋ฐฐ์—ด๋ณต์‚ฌ System.arraycopy()

 ๋ฐฐ์—ด์€ ํ•œ ๋ฒˆ ํฌ๊ธฐ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—

 ๋” ๋งŽ์€ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋ฉด ํฐ ๋ฐฐ์—ด์„ ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ  ์ด์ „ ๊ฐ’์„ ๋ณต์‚ฌํ•ด์•ผํ•จ

System.arraycopy)objext src, intsrcPos, object dest, int destPos, int length);

src : ์›๋ณธ๋ฐฐ์—ด
srcPos : ์›๋ณธ ๋ฐฐ์—ด์—์„œ ๋ณต์‚ฌํ•  ํ•ญ๋ชฉ์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค
dest : ์ƒˆ ๋ฐฐ์—ด
destPos : ์ƒˆ ๋ฐฐ์—ด์—์„œ ๋ถ™์—ฌ๋„ฃ์„ ์‹œ์ž‘ ์ธ๋ฑ์Šค
length : ๋ณต์‚ฌํ•  ๊ฐœ์ˆ˜
		String[] oldArr = {"java", "c++", "c#"};
		String[] newArr = new String[5];
		
		System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);

		
		for(int i = 0; i<newArr.length; i++){
			System.out.print(newArr[i]+",");
		}
        
        
        //java,c++,c#,null,null,

๋ณต์‚ฌ๋˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์€ String[]๋ฐฐ์—ด์˜ ๊ธฐ๋ณธ๊ฐ’์ธ null์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋จ

 

 

 

 

๋ฐ˜์‘ํ˜•