Java

[Effective Java] ์•„์ดํ…œ 53. ๊ฐ€๋ณ€์ธ์ˆ˜๋Š” ์‹ ์ค‘ํžˆ ์‚ฌ์šฉํ•˜๋ผ.

quedevel 2023. 3. 24. 19:45
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽฏ ์•„์ดํ…œ 53. ๊ฐ€๋ณ€์ธ์ˆ˜๋Š” ์‹ ์ค‘ํžˆ ์‚ฌ์šฉํ•˜๋ผ.

์ธ์ˆ˜ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š์€ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๊ฐ€๋ณ€์ธ์ˆ˜๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ํ•„์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๊ฐ€๋ณ€์ธ์ˆ˜ ์•ž์— ๋‘๊ณ , ๊ฐ€๋ณ€์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์„ฑ๋Šฅ ๋ฌธ์ œ๊นŒ์ง€ ๊ณ ๋ คํ•˜์ž.

  • ์ธ์ˆ˜๊ฐ€ 1๊ฐœ ์ด์ƒ์ด์–ด์•ผ ํ•˜๋Š” ๊ฐ€๋ณ€์ธ์ˆ˜ ๋ฉ”์„œ๋“œ - ์ž˜๋ชป ๊ตฌํ˜„ํ•œ ์˜ˆ!
static int min(int... args) {
    if (args.length == 0)
        throw new IllegalArgumentException("์ธ์ˆ˜๊ฐ€ 1๊ฐœ ์ด์ƒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.");
    int min = args[0];
    for (int i = 1; i < args.length; i++)
        if (args[i] < min)
            min = args[i];
    return min;
}

์ด ๋ฐฉ์‹์—๋Š” ๋ฌธ์ œ๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ๋‹ค. ๊ฐ€์žฅ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋Š” ์ธ์ˆ˜๋ฅผ 0๊ฐœ๋งŒ ๋„ฃ์–ด ํ˜ธ์ถœํ•˜๋ฉด ๋Ÿฐํƒ€์ž„์— ์‹คํŒจํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. ์ฝ”๋“œ๋„ ์ง€์ €๋ถ„ํ•˜๋‹ค.


  • ์ธ์ˆ˜๊ฐ€ 1๊ฐœ ์ด์ƒ์ด์–ด์•ผ ํ•  ๋•Œ ๊ฐ€๋ณ€์ธ์ˆ˜๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
static int min(int firstArg, int... remainingArgs) {
    int min = firstArg;
    for (int arg : remainingArgs)
        if (arg < min)
            min = arg;
    return min;
}

์ฒซ ๋ฒˆ์งธ๋กœ๋Š” ํ‰๋ฒ”ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›๊ณ , ๊ฐ€๋ณ€์ธ์ˆ˜๋Š” ๋‘ ๋ฒˆ์žฌ๋กœ ๋ฐ›์œผ๋ฉด ์•ž์„œ์˜ ๋ฌธ์ œ๊ฐ€ ๋ง๋”ํžˆ ์‚ฌ๋ผ์ง„๋‹ค.



์ฐธ๊ณ  ์ž๋ฃŒ

Joshua Bloch, ใ€ŽEffective Java 3/Eใ€, ๊ฐœ์•ž๋งต์‹œ ์˜ฎ๊น€, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ธ์‚ฌ์ดํŠธ(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=

728x90
๋ฐ˜์‘ํ˜•