2024. 7. 10. 11:45ใ๐์๊ณ ๋ฆฌ์ฆ ํผ๋๋ฐฑ/์ฝํ ๊ด๋ จ ๊ฐ์ข

[๋ฌธ์ ํด๊ฒฐ]
2์ค for๋ฌธ์ ์ด์ฉํ์ฌ 2์ฐจ์๋ฐฐ์ด๋ก ์ ๋ ฌํด๋ณด๋ ค๊ณ ์๊ฐํ๋๋ฐ, ๋๋ฌด ๋ณต์กํ ๋ฐฉ๋ฒ ๊ฐ๋ค
[ ์์ . ] -> indexOf()๋ฅผ ํ์ฉํ์
[indexOf()]
-> ํน์ ๋ฌธ์๋ ๋ฌธ์์ด์ด ์์์๋ถํฐ ์ฒ์ ๋ฐ๊ฒฌ๋๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ฉฐ, ๋ง์ฝ ์ฐพ์ง ๋ชปํ์ ๊ฒฝ์ฐ,
"-1" ์ ๋ฐํํ๋ค
[indexOf ํ์ฉ]
indexOf("์ฐพ์ ํน์ ๋ฌธ์", "์์ํ ์์น");
-> ์์ํ ์์น๋ ์๋ต ๊ฐ๋ฅ(์๋ตํ ๊ฒฝ์ฐ 0๋ฒ์งธ ๋ถํฐ ์ฐพ๊ธฐ ์์ํ๋ค)
[lastIndexOf() ]
-> ํน์ ๋ฌธ์๋ ๋ฌธ์์ด์ด ๋ค์์๋ถํฐ ์ฒ์ ๋ฐ๊ฒฌ๋๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ฉฐ, ๋ง์ฝ ์ฐพ์ง ๋ชปํ์ ๊ฒฝ์ฐ "-1" ์ ๋ฐํํ๋ค.
[๋ฐฐ์ด ํน์ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ]
-> ์๋ฐ์์ ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ์ด๋ฏ๋ก, ํน์ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ ๊ฑฐํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ์ง ์๋๋ค
๋ฐฉ๋ฒ1. Stream API ์ฌ์ฉ
-> ์๋ฐ ๋ฒ์ ์ด 1.8 ์ด์์ธ ๊ฒฝ์ฐ Stream API๋ฅผ ์ฌ์ฉํ ์ ์๋ค
* ์ ๊ฑฐ ๋ฐฉ๋ฒ
1. IntStream์ range() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ 0๋ถํฐ ์๋ณธ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ๊ฐ์ ์์ฑํ๋ค
2. range() ๋ฉ์๋ ๋ฐํ ๊ฒฐ๊ณผ์์ filter() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค. ํน์ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฐ์ ๋ฐํํ๋๋ก ํ๋ค
3. map() ํจ์ ๋๋ mapToObj() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ํน์ ์ธ๋ฑ์ค์ ์์๊ฐ ์ ์ธ๋ ์๋ณธ ๋ฐฐ์ด์ ์์๋ฅผ ํ ๋นํ
4. toArray() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์คํธ๋ฆผ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ๋ณํํฉ๋๋ค.
public void solution() throws Exception {
String[] strArr = {"10", "20","30","40","50","60","70"};
System.out.println("2 ๋ฒ์งธ ์ธ๋ฑ์ค์ ์์ ์ญ์ ์ " + Arrays.toString(strArr));
String[] newArr = IntStream.range(0, strArr.length) //0๋ถํฐ ๋ฐฐ์ด ๊ธธ์ด๋งํผ ๊ฐ์ ์์ฑ
.filter(idx -> idx !=2)//ํน์ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฐ์ ๋ฐํํ๋๋ก! (์ฌ๊ธฐ์ ์กฐ๊ฑด ์ ์)
.mapToObj(idx -> strArr[idx]) // ํน์ ์ธ๋ฑ์ค์ ์์๊ฐ ์ ์ธ๋ ์๋ณธ ๋ฐฐ์ด์ ์์ ํ ๋น
.toArray(String[]::new); // toArray() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์คํธ๋ฆผ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ๋ณํ
System.out.println("2๋ฒ์งธ ์ธ๋ฑ์ค ์์ ์ญ์ ํ" + Arrays.toString(newArr));
}
[๋ฐฉ๋ฒ2. List๋ก ๋ณํ ํ ์ ๊ฑฐ]
-> ๋ฐฐ์ด์ List๋ก ๋ณํ ํ List์ remove() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์์น์ ์์๋ฅผ ์ ๊ฑฐํ ์ ์๋ค
1. ๋ฐฐ์ด์ List๋ก ๋ณํ
2. List์ remove() ๋ฉ์๋์ ํน์ ์ธ๋ฑ์ค๋ฅผ ์ ๋ฌํ์ฌ ํน์ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ ๊ฑฐํ๋ค
3. ํน์ ์ธ๋ฑ์ค์ ์์๊ฐ ์ ๊ฑฐ๋ List๋ฅผ ๋ค์ ๋ฐฐ์ด๋ก ๋ณํํ๋ค.
[๋ฐฉ๋ฒ3. System ํด๋์ค์ arraycopy ๋ฉ์๋]
-> Systemํด๋์ค์์ ์ ๊ณตํ๋ arrayCopy() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์์น๋ถํฐ ํน์ ๊ฐ์๋งํผ ์๋ก์ด ๋ฐฐ์ด์ ๊ฐ์ ํ ๋นํ๋ค
1. ์๋ก์ด ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ (์๋ณธ ๋ฐฐ์ด์ ํฌ๊ธฐ -1) ๋ก ์ค์ ํ๋ค
2. ์ฌ์ฉํ์ฌ 0๋ถํฐ ํน์ ์ธ๋ฑ์ค๊น์ง ๋ฐฐ์ด์ ๋ณต์ฌํ๋ค
3. ์๋ณธ ๋ฐฐ์ด์ ์์ ์์น(ํน์ ์ธ๋ฑ์ค + 1) ๋ก ์ค์ ํ๊ณ ๋๋จธ์ง ๊ฐ์ ๋ณต์ฌ
public void solution() throws Exception {
public static native void arraycopy(
Object src; //๋ณต์ฌํ๊ณ ์ ํ๋ ์๋ณธ ๋ฐฐ์ด
int srcPos; // ๋ณต์ฌํ๊ณ ์ ํ๋ ์๋ณธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์์์์น
Object dest; // ์๋ณธ ๋ฐฐ์ด์์ ๋ณต์ฌํ ๋ฐ์ดํฐ๋ฅผ ํ ๋นํ๋ ค๋ ๋ฐฐ์ด ,์๋ก์ด๋ฐฐ์ด
int destPos; // ์๋ก์ด ๋ฐฐ์ด์ ์์์์น 0-> ๋ณต์ฌํ ๋ฐ์ดํฐ๊ฐ ์๋ก์ด ๋ฐฐ์ด์ ์ธ๋ฑ์ค 0๋ถํฐ ํ ๋น
int length; // ์๋ณธ ๋ฐฐ์ด์์ ๋ณต์ฌ๋๋ ๋ฐ์ดํฐ์ ๊ฐ์
)
int[] srcArr = IntStream.rangeClosed(1,10).toArray();
int[] destArr = new Int[5];
System.arraycopy(srcArr, 3, destArr, 0,4);
System.out.println("srcArr : " + Arrays.toString(srcArr));
System.out.println("destARr : " + Arrays.toString(destArr));
}
[์์ ]
[contains ๋ฉ์๋]
https://developer-talk.tistory.com/666
[Java]๋ฐฐ์ด์ ํน์ ๊ฐ์ด ์กด์ฌํ๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ
๋ฐฐ์ด์ ํน์ ๊ฐ์ด ์กด์ฌํ๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ ์ด๋ฒ ํฌ์คํ ์ Java์์ ๋ฐฐ์ด์ ํน์ ๊ฐ์ด ์กด์ฌํ๋์ง ํ์ธํ ์ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ๋ค์ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ธ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๊ฑฐ๋ List๋ก ๋ณ
developer-talk.tistory.com
[๋ฐฐ์ด์์ ํน์ ์์๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ]
์๋ฐ ๋ฐฐ์ด ํน์ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ ๊ฑฐํ๋ ๋ฒ
์ฐธ๊ณ ๋ ํผ๋ฐ์ค : ํน์ ์ธ๋ฑ์ค ์์ ์ ๊ฑฐ์๋ฐ๋ ํ์ด์ฌ๊ณผ๋ ๋ค๋ฅด๊ฒ ๋ฐฐ์ด์ด ๊ณ ์ ํฌ๊ธฐ๋ผ์ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ ๊ฑฐํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ์ง ์๋๋ค.์ด ๊ฐ๋ ์ด ์ง์ง ์ต์์น ์์์ ๋ฌธ์ ํ ๋ ์๊ฐ์
velog.io
[๋ฐฐ์ด์ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ]
https://developer-talk.tistory.com/710
[Java]๋ฐฐ์ด ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ
๋ฐฐ์ด ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ Java์์ ๋ฐฐ์ด์ ๊ธฐ๋ณธ ํ์ ์ด ์๋ ์ฐธ์กฐ ํ์ ์ ๋๋ค. ๋ฐ๋ผ์, ๋ฐฐ์ด์ ์ค์ ๋ฐ์ดํฐ๋ Heap ์์ญ์ ์์ฑ๋๊ณ ๋ณ์๋ Stack ์์ญ์ ์์ฑ๋ฉ๋๋ค. Stack ์์ญ์ ์์ฑ๋ ๋ณ์๋ ์ฐธ์กฐ ๊ฐ(H
developer-talk.tistory.com