T_era
[Java] Set과 HashSet(인터페이스 기반 프로그래밍) 본문
크게 보면 Set은 인터페이스 HashSet은 클래스이다
둘이 기능은 거의 비슷하지만 HashSet은 Set을 구현한 클래스이기에 다른점이 존재한다

위와 같은 차이가 존재하는데 이 내용을 살펴보게 된이유는 아래의 코드 때문이다
Set<String> set = new HashSet<>();
굳이 Set으로 선언한 이유가 궁금해 찾아보았더니 프로그래밍을 하게될 때 다형성을 위해
인터페이스를 기반으로 프로그래밍하는 것이 좋은 습관이기 때문에 이 코드가 더 좋은 코드라는 설명을 듣게되었다
알게된 이유는 문제풀이를 위해 1회성으로 사용하지만 추후에 프로젝트를 진행하다보면
HashSet을 LinkedHashSet이나 TreeSet 등으로 변환시킬 수 있는 유연성이 필요할 수도 있고
코드의 결합도도 낮출 수 있다
또 Set 자체가 "중복이 없는 컬렉션"이라는 추상적인 개념을 나타내기 때문에
코드를 읽을 때 이해하기 쉬워진다는 이점이 있다
결론적으로, 인터페이스 타입으로 변수를 선언하는 것은 더 유연하고 유지보수가 용이하며 추상적인 코드를 작성하는 데 도움이 된다.
'이론 > 알고리즘' 카테고리의 다른 글
| [JAVA] 재귀함수와 반복문의 차이 (0) | 2025.04.23 |
|---|---|
| [JAVA] 다이나믹 프로그래밍(DP) 이론 (0) | 2025.04.22 |
| [JAVA] Comparator를 람다식으로 사용하기 (0) | 2025.04.14 |
| [알고리즘] 이진 탐색 (0) | 2025.04.10 |
| [JAVA] 우선순위 큐 (0) | 2025.04.04 |