static
private constructor
utility class
자바에는 private 기본 생성자와 정적 메서드나 필드만으로 구성된 클랫그가 존재한다. 또는 이렇게 구현할 수가 있다. 이러한 클래스는 다른 곳에서 생성자를 호출할 수 없으므로 하위 클래스를 만들 수 없다.
예를 들어, java.util.Arrays
와 같이 기본 자료형이나 배열에 적용되는 각종 메서드를 제공하는 클래스가 자바 라이브러리에 있다. 이런 클래스는 직접 인스턴스화해서 사용되는 것이 목적이 아니라, 유틸리티 메서드를 제공하는 유틸리티 클래스 에 해당한다.
이러한 유틸리티 클래스는 외부에서 객체(인스턴스)를 생성하는 것이 불필요하다. 따라서 private 기본 생성자를 선언하여 이를 방지해줄 수 있다.
References:
https://www.geeksforgeeks.org/upcasting-in-java-with-examples/
https://www.geeksforgeeks.org/upcasting-vs-downcasting-in-java/#:~:text=Upcasting%3A%20Upcasting%20is%20the%20typecasting,object%20to%20a%20parent%20object.&text=Instead%20of%20all%20the%20members,object%20to%20a%20child%20object.
두 개 뽑아서 더하기
7분 정도만에 풀었다. 만들 수 있는 모든 수 라는 부분과 예시에서 중복이 없다는 것을 확인하여 HashSet을 떠올렸고, 오름차순이라는 말에서 Collections.sort()을 사용하거나, 아예 TreeSet을 사용하여 저장하면 정렬된 순서로 저장될 것이라고 생각했다.
Arrays.indexOf == -1 을 이용해서 중복제거가 가능하다.
List.contains()를 사용해서 중복제거가 가능하다.