Amenable
Amenable's Blog
Amenable
  • λΆ„λ₯˜ 전체보기 (189)
    • πŸ“‚ JAVA (87)
      • μ΄νŽ™ν‹°λΈŒ μžλ°” (65)
      • μ£Όμš” κ°œλ… (22)
    • πŸ“‚ 개발 μ„œμ  (22)
      • μ‹€μš©μ£Όμ˜ ν”„λ‘œκ·Έλž˜λ¨Έ (1)
      • 객체지ν–₯의 사싀과 μ˜€ν•΄ (2)
      • 클린 μ½”λ“œ (8)
      • ν•¨κ»˜ 자라기 (1)
      • 그림으둜 λ°°μš°λŠ” HTTP&Network Basic (10)
    • πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€ (8)
      • κ°œλ… (8)
      • λ¬Έμ œν’€μ΄ (0)
    • πŸ“‚ λ„€νŠΈμ›Œν¬ (14)
      • κ°œλ… (6)
      • 성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리 (8)
    • πŸ“‚ μŠ€ν”„λ§ (13)
      • κΈ°λ³Έ κ°œλ… (13)
    • πŸ“‚ WEB (5)
    • πŸ“‚ 자료ꡬ쑰 (12)
      • κ°œλ… (2)
      • μ •λ ¬ (8)
      • 트리 (2)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜ (10)
      • μ΅œμ†Œμ‹ μž₯트리 (2)
      • μ΅œλ‹¨ 경둜 (2)
      • λ¬Έμžμ—΄ (2)
      • ETC (4)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜_λ¬Έμ œν’€μ΄ (4)
      • BOJ_λ°±μ€€ (4)
    • πŸ“‚ ν”„λ‘œκ·Έλž˜λ° (3)
    • πŸ“‚ DevOps (2)
      • 배포 (2)
    • πŸ“‚ ν›„κΈ° (8)
      • μš°μ•„ν•œ ν…Œν¬μ½”μŠ€(ν”„λ¦¬μ½”μŠ€) (4)
      • 2023λ…„ (3)
      • 2024λ…„ (1)
    • πŸ“‚ 회고 (1)
      • 2023λ…„ (1)

λΈ”λ‘œκ·Έ 메뉴

  • πŸš€ GitHub

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
Amenable
πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”

κ°€λ³€μΈμˆ˜λŠ” μ‹ μ€‘νžˆ μ‚¬μš©ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ53)]

κ°€λ³€μΈμˆ˜λŠ” μ‹ μ€‘νžˆ μ‚¬μš©ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ53)]
πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”

κ°€λ³€μΈμˆ˜λŠ” μ‹ μ€‘νžˆ μ‚¬μš©ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ53)]

2023. 12. 11. 19:21

πŸ“™ 1. κ°€λ³€μΈμˆ˜

  인수 κ°œμˆ˜κ°€ μΌμ •ν•˜μ§€ μ•Šμ€ λ©”μ„œλ“œλ₯Ό μ •μ˜ν•  λ•Œ κ°€λ³€μΈμˆ˜(varargs)λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

  κ°€λ³€μΈμˆ˜ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄, κ°€μž₯ λ¨Όμ € 인수의 κ°œμˆ˜μ™€ 길이가 같은 배열을 λ§Œλ“€κ³  μΈμˆ˜λ“€μ„ 이 배열에 μ €μž₯ν•˜μ—¬ κ°€λ³€μΈμˆ˜ λ©”μ„œλ“œλ₯Ό 건넀쀀닀.

  μž…λ ₯받은 int μΈμˆ˜λ“€μ˜ 합을 계산해 μ£ΌλŠ” κ°€λ³€μΈμˆ˜ λ©”μ„œλ“œλ₯Ό λ‹€μŒκ³Ό 같이 λ§Œλ“€ 수 μžˆλ‹€.

static int sum(int... args) {
    int sum = 0;
    for (int arg : args)
        sum += arg;

    return sum;
}

 

πŸ“™ 2. κ°€λ³€μΈμˆ˜μ˜ 문제점과 그에 λ”°λ₯Έ ν•΄κ²°μ±…

  κ°€λ³€μΈμˆ˜λ₯Ό μ•„λž˜μ™€ 같이 잘λͺ» κ΅¬ν˜„ν•  μˆ˜λ„ μžˆλ‹€.

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개 받을 수 μžˆλ‹€.
  • 인수λ₯Ό 0개 λ°›λŠ” 경우 μ»΄νŒŒμΌνƒ€μž„μ΄ μ•„λ‹Œ λŸ°νƒ€μž„μ— μ‹€νŒ¨ν•œλ‹€.
  • min의 μ΄ˆκΈ°κ°’μ„ Integer.MAX_VALUE둜 μ„€μ •ν•˜μ§€ μ•Šμ•˜λ‹€.
  • 더 λͺ…λ£Œν•œ for-each문을 μ‚¬μš©ν•  수 μ—†λ‹€.

 

  λ‹€μŒ μ½”λ“œμ²˜λŸΌ λ§€κ°œλ³€μˆ˜λ₯Ό 2개 λ°›μœΌλ©΄ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€.

static int min(int firstArg, int... remainingArgs) {
    int min = firstArg;
    for(int arg : remainingArgs)
        if(arg < min)
            min = arg;

    return min;
}

 

πŸ“™ 3. μ„±λŠ₯ κ°œμ„ 

  μ„±λŠ₯에 λ―Όκ°ν•œ 상황이라면 κ°€λ³€μΈμˆ˜κ°€ 걸림돌이 λœλ‹€. κ°€λ³€μΈμˆ˜ λ©”μ„œλ“œλŠ” 호좜될 λ•Œλ§ˆλ‹€ 배열을 μƒˆλ‘œ ν•˜λ‚˜ ν• λ‹Ήν•˜κ³  μ΄ˆκΈ°ν™”ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

  이런 경우 λ‹€μ€‘μ •μ˜λ₯Ό μ΄μš©ν•œλ‹€λ©΄ μ„±λŠ₯을 κ°œμ„ ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ ν•΄λ‹Ή λ©”μ„œλ“œ ν˜ΈμΆœμ˜ 95%κ°€ μΈμˆ˜ 3개 μ΄ν•˜λ‘œ μ‚¬μš©ν•œλ‹€κ³  ν•΄λ³΄μž.

  • 호좜의 95%
    인수 0개, 인수 1개, 인수 2개, 인수 3개인 경우
  • 호좜의 5%
    인수 4개 이상인 경우

  μ•„λž˜μ™€ 같이 λ‹€μ€‘μ •μ˜ λ©”μ„œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ λ¬Έμ œμ μ„ ν•΄κ²°ν•  수 μžˆλ‹€.

// 95%λ₯Ό λ‹΄λ‹Ή
public void foo() {}
public void foo(int a1) {}
public void foo(int a1, int a2) {}
public void foo(int a1, int a2, int a3) {}

// 5%λ₯Ό λ‹΄λ‹Ή
public void foo(int a1, int a2, int a3, int... rest) {}

 

ν•΄λ‹Ή 글은 Joshua Bloch λ‹˜μ˜ 'Effective Java 3/E'λ₯Ό μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

 

'πŸ“‚ JAVA > μ΄νŽ™ν‹°λΈŒ μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

μ˜΅μ…”λ„ λ°˜ν™˜μ€ μ‹ μ€‘νžˆ ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ55)]  (0) 2023.12.12
null이 μ•„λ‹Œ, 빈 μ»¬λ ‰μ…˜μ΄λ‚˜ 배열을 λ°˜ν™˜ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ54)]  (0) 2023.12.11
λ‹€μ€‘μ •μ˜λŠ” μ‹ μ€‘νžˆ μ‚¬μš©ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ52)]  (1) 2023.12.11
λ©”μ„œλ“œ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό μ‹ μ€‘νžˆ μ„€κ³„ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ51)]  (0) 2023.12.10
μ μ‹œμ— 방어적 볡사본을 λ§Œλ“€λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ50)]  (0) 2023.12.10
  • πŸ“™ 1. κ°€λ³€μΈμˆ˜
  • πŸ“™ 2. κ°€λ³€μΈμˆ˜μ˜ 문제점과 그에 λ”°λ₯Έ ν•΄κ²°μ±…
  • πŸ“™ 3. μ„±λŠ₯ κ°œμ„ 
'πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • μ˜΅μ…”λ„ λ°˜ν™˜μ€ μ‹ μ€‘νžˆ ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ55)]
  • null이 μ•„λ‹Œ, 빈 μ»¬λ ‰μ…˜μ΄λ‚˜ 배열을 λ°˜ν™˜ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ54)]
  • λ‹€μ€‘μ •μ˜λŠ” μ‹ μ€‘νžˆ μ‚¬μš©ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ52)]
  • λ©”μ„œλ“œ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό μ‹ μ€‘νžˆ μ„€κ³„ν•˜λΌ - [8μž₯. λ©”μ„œλ“œ(μ•„μ΄ν…œ51)]
Amenable
Amenable
CS, μžλ°”, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜, μŠ€ν”„λ§, μŠ€ν”„λ§ λΆ€νŠΈμ— ν•΄λ‹Ήν•˜λŠ” κ°œλ°œμ— κ΄€ν•œ λ‚΄μš©μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.