์ž๋ฐ”(Java) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ž…๋ฌธ 1-6. ์ค‘๋ณต๋ฌธ์ž์ œ๊ฑฐ #.indexOf()

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

[๋ฐฐ์—ด์—์„œ ํŠน์ • ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•]

https://velog.io/@heekyoung2000/%EC%9E%90%EB%B0%94-%EB%B0%B0%EC%97%B4-%ED%8A%B9%EC%A0%95-%EC%9D%B8%EB%8D%B1%EC%8A%A4%EC%9D%98-%EC%9A%94%EC%86%8C%EB%A5%BC-%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94-%EB%B2%95

 

์ž๋ฐ” ๋ฐฐ์—ด ํŠน์ • ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฒ•

์ฐธ๊ณ  ๋ ˆํผ๋Ÿฐ์Šค : ํŠน์ • ์ธ๋ฑ์Šค ์š”์†Œ ์ œ๊ฑฐ์ž๋ฐ”๋Š” ํŒŒ์ด์ฌ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๋ฐฐ์—ด์ด ๊ณ ์ •ํฌ๊ธฐ๋ผ์„œ ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.์ด ๊ฐœ๋…์ด ์ง„์งœ ์ต์ˆ™์น˜ ์•Š์•„์„œ ๋ฌธ์ œ ํ’€ ๋•Œ ์‹œ๊ฐ„์„

velog.io

[๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•]

https://developer-talk.tistory.com/710

 

[Java]๋ฐฐ์—ด ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฐฐ์—ด ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ• Java์—์„œ ๋ฐฐ์—ด์€ ๊ธฐ๋ณธ ํƒ€์ž…์ด ์•„๋‹Œ ์ฐธ์กฐ ํƒ€์ž…์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ฐฐ์—ด์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” Heap ์˜์—ญ์— ์ƒ์„ฑ๋˜๊ณ  ๋ณ€์ˆ˜๋Š” Stack ์˜์—ญ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. Stack ์˜์—ญ์— ์ƒ์„ฑ๋œ ๋ณ€์ˆ˜๋Š” ์ฐธ์กฐ ๊ฐ’(H

developer-talk.tistory.com