0. ๋ฐฐ์ด Array ๋ ?
๋ฐฐ์ด์ ๊ฐ์ ์๋ฃํ์ ๋ณ์๋ก ์ด๋ฃจ์ด์ง ๊ตฌ์ฑ์์๊ฐ ๋ชจ์ธ ๊ฒ.
1. ๋ฐฐ์ด ์ ์ธ
๋ฐฐ์ด์ ์ ์ธํ๋ฉด ๋ฐฐ์ด ๋ณธ์ฒด์ ํจ๊ผ ๋ฐฐ์ด์ ๊ตฌ์ฑ ์์์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ length๋ผ๋ ๋ณ์๊ฐ ๋ง๋ค์ด์ง๋ค.
๋ฐฐ์ด a์ ๊ฐ ์์์ ์๋ฃํ์ int์ด๊ณ ๋ฐฐ์ด a์ ์๋ฃํ์ int[5] ์ด๋ค.
int[] a; // ์๋ฃํ์ด int์ธ ๋ฐฐ์ด a ์ ์ธ : ํ์A
// => intํ ๋ฐฐ์ด์์ ๋ช
ํํ ์๋ ค์ฃผ๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋ง์ด ์ฌ์ฉ๋จ
int a[]; // ์๋ฃํ์ด int์ธ ๋ฐฐ์ด a ์ ์ธ : ํ์B
a = new int[5] // a๋ ๊ธธ์ด๊ฐ 5์ธ ๋ฐฐ์ด์ ์ฐธ์กฐ
int[] a = new int[5]; // ์ ์ธ๊ณผ ์ฐธ์กฐ๋ฅผ ํ๋ฒ์
int[] a = {1, 2, 3, 4, 5} // ๋ฐฐ์ด ์ด๊ธฐํ, ์์๋๋ก ๋์
๋จ
int[] a = new int[] {1, 2, 3, 4, 5} // ์ข๋ ๋ช
ํํ๊ฒ ์ ์ธ
int b = a.length; // ๋ฐฐ์ด ๊ธธ์ด๋ฅผ ๋ณ์ b์ ์ ์ฅ
โถ ๋ฐฐ์ด ์ ์ธ์ ๋ํดํธ๊ฐ
2. ๋ฐฐ์ด ๋ณต์ฌ
๋ฐฐ์ด์ ๋ณต์ฌํ ๋ ๋ฐฐ์ด์ ์ฃผ์ ๊ฐ๋ง์ ๋ณต์ฌํ๋ ์์ ๋ณต์ฌ์, ๋ฐฐ์ด์ ์ค์ ๊ฐ์ ๋ณต์ฌํ๋ ๊น์ ๋ณต์ฌ๊ฐ ์๋ค.
์์ ๋ณต์ฌ๋ก ๋ฐฐ์ด์ ๋ณต์ฌํ ๊ฒฝ์ฐ ์ค์ ๋ก ํ๋์ ์ฃผ์๊ฐ์ ๊ฐ๋ฆฌํค๊ณ ์๊ธฐ ๋๋ฌธ์ ํ๋๋ฅผ ์์ ํ๋ฉด ๋๊ฐ๊ฐ ๋ค ์์ ๋๋ค.
๊น์ ๋ณต์ฌ๋ clone() ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ์ฝ๊ฒ ํ ์ ์๋ค.
int[] a = {1, 2, 3, 4, 5}; // ๋ฐฐ์ด a ์์ฑ
int[] b = a; // ๋ฐฐ์ด b๋ฅผ ์์ฑํ์ฌ ๋ฐฐ์ด a ์์ ๋ณต์ฌ
int[] c = a.clone(); // ๋ฐฐ์ด c๋ฅผ ์์ฑํ์ฌ ๋ฐฐ์ด a ๊น์ ๋ณต์ฌ
b[3] = 0;
c[2] = 0;
System.out.print("a = ");
for(int i = 0; i < a.length; i++) {
System.out.print(" " + a[i]);
}
System.out.print("\nb = ");
for(int i = 0; i < a.length; i++) {
System.out.print(" " + b[i]);
}
System.out.print("\nc = ");
for(int i = 0; i < a.length; i++) {
System.out.print(" " + c[i]);
}
a = 1 2 3 0 5 b = 1 2 3 0 5 c = 1 2 0 4 5 |
=> b[3]์ 0 ์ผ๋ก ์์ ํ์๋๋ฐ a[3]๋ 0 ์ผ๋ก ์์ ๋์๋ค : ์์ ๋ณต์ฌ
=> c[2]์ 0 ์ผ๋ก ์์ ํ์์ง๋ง a[2]๋ ์์ ๋์ง ์์๋ค : ๊น์ ๋ณต์ฌ