🎯 아이템 55. 옵셔널 반환은 신중히 하라. 값을 반환하지 못할 가능성이 있고, 호출할 때마다 반환값이 없을 가능성을 염두에 둬야 하는 메서드라면 옵셔널을 반환해야 할 상황일 수 있다. 하지만 옵셔널 반환에는 성능 저하가 뒤따르니, 성능에 민감한 메서드라면 null을 반환하거나 예외를 던지는 편이 나을 수 있다. 그리고 옵셔널을 반환값 이외의 용도로 쓰는 경우는 매우 드믈다. 옵셔널은 원소를 최대 1개 가질 수 있는 '불변'컬렉션이다. 보통은 T를 반환해야 하지만 특정 조건에서는 아무것도 반환하지 않아야 할때 T 대신 Optional를 반환하도록 선언하면 된다. 컬렉션에서 최댓값을 구한다(컬렉션이 비었으면 예외를 던진다). public static E max(Collection c) { ..