Skip to content

Latest commit

Β 

History

History
36 lines (28 loc) Β· 1.12 KB

Item_30._use_generic_method.md

File metadata and controls

36 lines (28 loc) Β· 1.12 KB

Item 30. 이왕이면 μ œλ„€λ¦­ λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λΌ

μ œλ„€λ¦­ λ©”μ„œλ“œ

public static <E> Set<E> union(Set<E> s1, Set<E> s3) {
		Set<E> result = new HashSet<>(s1);
		result.addAll(s2);
		return result;
}
  • λ©”μ„œλ“œμ˜ μ ‘κ·Ό μ œμ–΄μžμ™€ λ°˜ν™˜ νƒ€μž… 사이에 νƒ€μž… λ§€κ°œλ³€μˆ˜λ₯Ό μœ„μΉ˜μ‹œν‚€λ©΄ λ©”μ„œλ“œλ₯Ό μ œλ„€λ¦­ λ©”μ„œλ“œλ‘œ λ§Œλ“€ 수 있음
  • μ œλ„€λ¦­ λ©”μ„œλ“œμ˜ νƒ€μž…μ€ λ©”μ„œλ“œ 호좜 μ‹œμ μ— 정해짐

μ œλ„€λ¦­ λ©”μ„œλ“œμ˜ μž₯점

μž¬κ·€μ  νƒ€μž… ν•œμ •μ„ 톡해 νƒ€μž… λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž… λ²”μœ„λ₯Ό ν•œμ •μ§€μŒμœΌλ‘œμ¨ νŠΉμ • κΈ°λŠ₯을 μ‚¬μš©ν•  수 있게 λ§Œλ“€ 수 있음

public static <E extends Comparable<E>> E max(List<E> list) {
    if (list.isEmpty()) {
        throw new IllegalArgumentException("λ¦¬μŠ€νŠΈκ°€ λΉ„μ–΄ 있음");
    }
    
    E maxValue = list.get(0);
    for (var e : list) {
        if (maxValue.compareTo(e) < 0) {
            maxValue = e;
        }
    }
    return maxValue;
}
  • μœ„μ˜ λ©”μ„œλ“œλŠ” νƒ€μž… λ§€κ°œλ³€μˆ˜λ₯Ό Comarable을 κ΅¬ν˜„ν•˜λŠ” 클래슀둜 ν•œμ •ν•¨μœΌλ‘œμ¨ compareTo λ©”μ„œλ“œλ₯Ό μ΄μš©ν•  수 μžˆλ„λ‘ 함