1.Arrays.fill()
๋ฐฐ์ด๋ก ์์ ํ ๋ Java ํ๋ก๊ทธ๋๋จธ๋ ๋ฐฐ์ด์ ๋์ผํ ๊ฐ์ผ๋ก ์ฑ์์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋งค์ฐ ๋ง์ต๋๋ค. ๋ฌผ๋ก ๋ฃจํ๋ฅผ ์์ฑํ๊ณ ๋ฃจํ์ ์๋ ๋ฐฐ์ด์ ๊ฐ ์ ์ ๊ฐ์ ํ ๋นํ ์ ์์ต๋๋ค.
int[] x = new int[100];
for (int i = 0; i < x.length; i++)
x[i] = 999;
Arrays.fill()
๋๋ ์ ํํ ๋์ผํ ์์
์ ์ํํ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค . ์ ๋ฌ๋ ๊ฐ์ผ๋ก ์ ๋ฌ๋ ๋ฐฐ์ด์ ์ฑ์๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
Arrays.fill(name, value)
๊ทธ๋ฆฌ๊ณ ์ ์์ ์ ์ฝ๋๋ ์ข ๋ ๊ฐ๊ฒฐํ๊ณ ๋ช ํํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
int[] x = new int[100];
Arrays.fill(x, 999);
Arrays.fill()
์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด ๋ฐฐ์ด์ด ์๋๋ผ ๋ฐฐ์ด์ ์ผ๋ถ๋ฅผ ์ผ๋ถ ๊ฐ์ผ๋ก ์ฑ์ธ ์๋ ์์ต๋๋ค .
Arrays.fill(name, first, last, value)
์ฌ๊ธฐ์ ์ฒซ ๋ฒ์งธ์ ๋ง์ง๋ง์ ์ฑ์ธ ์ฒซ ๋ฒ์งธ ์ ๊ณผ ๋ง์ง๋ง ์ ์ ์ธ๋ฑ์ค์ ๋๋ค.
์:
|
์ x[3] , x[4] , x[5] ๋ฐ x[6] ๊ฐ์ ์ฑ์ฐ๊ณ ์์ต๋๋ค 999 . ๋ฐฐ์ด์ ์
์ 0๋ถํฐ ์์ํ์ฌ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๋๋ค! ๋ณ์ str ์๋ ๋ค์ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค.
|
์ด Arrays.fill()
๋ฐฉ๋ฒ์ 1์ฐจ์ ๋ฐฐ์ด์์๋ง ์๋ํฉ๋๋ค. ๋ฉ์๋์ 2์ฐจ์ ๋ฐฐ์ด์ ์ ๋ฌํ๋ฉด ๋ชจ๋ ํ์ ๊ฒฐ๊ณผ์ ํจ๊ป 1์ฐจ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
2.Arrays.copyOf()
์ด๋ฏธ ์๊ณ ์๋ฏ์ด ๋ฐฐ์ด์ด ์์ฑ๋ ํ์๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
ํ์ง๋ง ์ ๋ง๋ก ์ํ๋ค๋ฉด ์ด๋จ๊น์?
๊ธ์, ๋น์ ์ด ์ ๋ง๋ก ์ํ๋ค๋ฉด ํ ์ ์์ต๋๋ค!
- ์ํ๋ ๊ธธ์ด์ ์ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค.
- ์ฒซ ๋ฒ์งธ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ โโ์ฌ๊ธฐ์ ๋ณต์ฌํฉ๋๋ค.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ์ด๊ฒ์ด ๋ฐ๋ก ์ด Arrays.copyOf()
๋ฐฉ๋ฒ์ด ํ๋ ์ผ์
๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ํธ์ถํฉ๋๋ค.
Type[] name2 = Arrays.copyOf(name, length);
์ด ๋ฐฉ๋ฒ์ ๊ธฐ์กด ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋์ ์ ๋ฐฐ์ด์ ๋ง๋ค๊ณ ์ด์ ๋ฐฐ์ด์ ์์๋ฅผ ๋ณต์ฌํฉ๋๋ค.
์์๊ฐ ๋ง์ง ์์ผ๋ฉด( ๊ธธ์ด๊ฐ ๊ธฐ์กด ๋ฐฐ์ด ์ ๊ธธ์ด๋ณด๋ค ์์ ) ์ถ๊ฐ ๊ฐ์ด ๋ฌด์๋ฉ๋๋ค.
์ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ์ด์ ๋ฐฐ์ด์ ๊ธธ์ด๋ณด๋ค ํฌ๋ฉด ์ ์ด 0์ผ๋ก ์ฑ์์ง๋๋ค.
์:
|
๋ณ์ str2 ์๋ ๋ค์ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค.
๋ณ์ str3 ์๋ ๋ค์ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค.
|
์ผ.Arrays.copyOfRange()
๊ธธ์ด๊ฐ 10์ธ ๋ฐฐ์ด์์ ๊ธธ์ด๊ฐ 5์ธ ๋ฐฐ์ด์ ๊ฐ์ ธ์ค๊ณ ์ถ์ง๋ง ์ฒ์ 5๊ฐ๊ฐ ์๋ ๋ง์ง๋ง 5๊ฐ์ ์์๋ฅผ ํฌํจํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
์ด ๊ฒฝ์ฐ Arrays
ํด๋์ค์ ๋ค๋ฅธ ๋ฉ์๋์ธ Arrays.copyOfRange()
. ํธ์ถํ ๋์ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Type[] name2 = Arrays.copyOfRange(name, first, last);
์ด ๋ฉ์๋๋ ๋ํ ์ ๋ฐฐ์ด์ ์์ฑํ์ง๋ง ์๋ ๋ฐฐ์ด์ ์์ ์์น์ ์๋ ์์๋ก ๋ฐฐ์ด์ ์ฑ์๋๋ค. ์ฌ๊ธฐ์ ์ฒซ ๋ฒ์งธ์ ๋ง์ง๋ง์ ์ ๋ฐฐ์ด์ ๋ฃ์ด์ผ ํ๋ ์ฒซ ๋ฒ์งธ ์์์ ๋ง์ง๋ง ์์์ ์ธ๋ฑ์ค์ ๋๋ค.
์:
|
๋ณ์ str2 ์๋ ๋ค์ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค.
๋ณ์ str3 ์๋ ๋ค์ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค.
|
4.Arrays.sort()
์, ๊ฐ์ฅ ๋ง์๋ ๋์ : ๋ถ๋ฅ . ๋ฐฐ์ด์ ํ๋ก๊ทธ๋๋ฐ์์ ๋งค์ฐ ์์ฃผ ์ ๋ ฌ๋ฉ๋๋ค. ์ด๋ ์ด๋ก ์์ ํ ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ธ โโ๊ฐ์ง ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฐฐ์ด ์ ๋ ฌ
- ๋ฐฐ์ด์ ์ต์(๋๋ ์ต๋) ์์ ์ฐพ๊ธฐ
- ๋ฐฐ์ด์์ ์์์ ์ธ๋ฑ์ค ๊ฒฐ์ (๋ฐฐ์ด์์ ์์ ์ฐพ๊ธฐ)
์ด๊ฒ์ด ๋ฐ๋ก Java ์์ฑ์๊ฐ ํด๋์ค sort()
์ ๋ฉ์๋๋ฅผ ํฌํจ์ํจ ์ด์ ์
๋๋ค Arrays
. ๋ค์๊ณผ ๊ฐ์ด ํธ์ถํฉ๋๋ค.
Arrays.sort(name);
์ด ๋ฉ์๋๋ ์ ๋ฌ๋ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
์:
|
๋ณ์ str ์๋ ๋ค์ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค.
|
ํ๋ฅญํ์ฃ ? ํ๋์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ์ด์ ์ ๋ ฌ๋ ๋ฐฐ์ด์ ๊ฐ๊ฒ ๋์์ต๋๋ค. ์๋ฆ๋ค์ด.
๊ทธ๋ฐ๋ฐ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ ์ฒด ๋ฐฐ์ด๋ฟ๋ง ์๋๋ผ ์ผ๋ถ๋ง ์ ๋ ฌํ ์๋ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ํธ์ถํฉ๋๋ค.
Arrays.sort(name, first, last);
์ฌ๊ธฐ์ first ์ last๋ ์ ๋ ฌ์ด ์ ์ดํด์ผ ํ๋ ์ฒซ ๋ฒ์งธ์ ๋ง์ง๋ง ์ ์ ์ธ๋ฑ์ค์ ๋๋ค.
์:
|
๋ณ์ str ์๋ ๋ค์ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค.
|
๋ฐฐ์ด์ ์ ๋ ฌํ๊ธฐ ์ํด Java๋ ๊ฐ์ฅ ๋น ๋ฅธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ธ QuickSort๋ฅผ ์ฌ์ฉํฉ๋๋ค . ๊ณ์ฐ ๋ณต์ก์ฑ์ ๋ฐฐ์ด์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฉฐ N log(N) ๊ณต์์ ์ฌ์ฉํ์ฌ ๊ณ์ฐ๋ฉ๋๋ค.
1000๊ฐ ์์์ ๋ฐฐ์ด์ ์ ๋ ฌํ๋ ค๋ฉด ์ฝ 3,000๋ฒ์ ๋ฐฐ์ด ์์ ๋น๊ต๊ฐ ํ์ํฉ๋๋ค. 100๋ง ์์์ ๋ฐฐ์ด์ ์ ๋ ฌํ๋ ค๋ฉด ์ฝ 600๋ง ๋ฒ์ ๋น๊ต๊ฐ ํ์ํฉ๋๋ค.
5.Arrays.binarySearch()
์, ํด๋์ค์ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๋ง์ง๋ง ๋ฉ์๋๋ Arrays
๋ฐฐ์ด์์ ์ฃผ์ด์ง ๊ฐ์ ๊ฒ์ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ์ ์ธ ๊ฒ์์ด ์๋๋๋ค. ์ฌ๋๋ฐ๋ ์ด์ง ๊ฒ์ ์
๋๋ค . ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋จผ์ ๋ฐฐ์ด์ด ์ ๋ ฌ๋ฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ๋ฐฐ์ด์ ์ค๊ฐ ์์๋ฅผ ์ฐพ๊ณ ์๋ ์์์ ๋น๊ตํฉ๋๋ค.
- ์์๊ฐ ์ค๊ฐ ์์๋ณด๋ค ํฌ๋ฉด ๋ฐฐ์ด์ ์ค๋ฅธ์ชฝ ์ ๋ฐ์์ ๊ฒ์์ด ๊ณ์๋ฉ๋๋ค.
- ์ฐพ๊ณ ์๋ ์์๊ฐ ์ค๊ฐ ์์๋ณด๋ค ์์ผ๋ฉด ๋ฐฐ์ด์ ์ผ์ชฝ ์ ๋ฐ์์ ๊ฒ์์ด ๊ณ์๋ฉ๋๋ค.
๋ฐฐ์ด์ด ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ ๋ฒ์ ๋น๊ต๋ก ์ ๋ฐ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ค์ ๋จ๊ณ์์ ๋๋จธ์ง ์ ๋ฐ์ ๋ฒ๋ฆฝ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ด์ง ๊ฒ์์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ง๋ญ๋๋ค. 100๋ง(!) ์์์ ๋ฐฐ์ด์์ ๋จ 20๋ฒ์ ๋น๊ต๋ก ์ํ๋ ์์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋จ์ ์ ๋ฐฐ์ด์ ๋จผ์ ์ ๋ ฌํด์ผ ํ๊ณ ์ ๋ ฌ์๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๋ ๊ฒ์ ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ํธ์ถํฉ๋๋ค.
int index = Arrays.binarySearch(name, value);
์ฌ๊ธฐ์ name
๋ฐฐ์ด์ ์ด๋ฆ์ ์ด๋ฏธ ์ ๋ ฌ๋ ์ํ๋ก ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค(์: ๋ฉ์๋ ์ฌ์ฉ Arrays.sort()
). ๊ทธ๋ฆฌ๊ณ value
๋ฐฐ์ด์์ ์ฐพ๊ณ ์๋ ์์์
๋๋ค. ๋ฉ์๋์์ ๋ฐํ๋ ๊ฒฐ๊ณผ๋ ์ํ๋ ๋ฐฐ์ด ์์์ ์ธ๋ฑ์ค ์
๋๋ค .
์:
|
x ์ด๋ค:
4 1 (์ธ๋ฑ์ค 0 ๋ฐ 2 ํ์ฉ ๊ฐ๋ฅ)8 -7 |
๋ฐฐ์ด์ด ๊ฒ์ ์ค์ธ ์์์ ์ฌ๋ฌ ์ธ์คํด์ค๋ฅผ ํฌํจํ๋ ๊ฒฝ์ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋จ์ํ ๊ทธ ์ค ํ๋์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค . ์ค๋ณต ์์)."
์์๊ฐ ๋ฐฐ์ด์์ ๋ฐ๊ฒฌ๋์ง ์์ผ๋ฉด ์ธ๋ฑ์ค๋ ์์๊ฐ ๋ฉ๋๋ค.
Arrays
6. ํด๋์ค ์ ๋ํ Oracle ์ค๋ช
์ ๋งํฌ
Arrays
๋งค์ฐ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ ๊ณต์ ๋ฌธ์ a href="https://docs.oracle.com/en/java/javase/14/docs/api/java.base์์ ํด๋์ค ๋ฐ ํด๋น ๋ฉ์๋ ์ ๋ํ ๋ชจ๋ ๋ด์ฉ์ ์ฝ์ ์ ์์ต๋๋ค. /java/util/Arrays.html">์ค๋ผํด ์น ์ฌ์ดํธ.
Arrays.mismatch()
์๋ฅผ ๋ค์ด ๋ฐ ๋ฉ์๋ ์ ๋ํด ์ฝ์ ์ ์์ต๋๋ค Arrays.compare()
. ์ด์ฉ๋ฉด ๋น์ ์ ๊ทธ๊ฒ๋ค์ด ์ด๋ป๊ฒ๋ ์ ์ฉํ๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐฉ๋ฒ์ ์์ ํผ๋ํ์ง ๋ง์ญ์์ค. ๊ฐ ๋ฐฉ๋ฒ์๋ ๋งค๊ฐ๋ณ์ ์ ํ๋ง ๋ค๋ฅธ โโ5-10๊ฐ์ ๋ณํ์ด ์์ต๋๋ค.
GO TO FULL VERSION