1. 오늘의 학습 키워드
Set과 HashSet의 차이점
2. 공부한 내용 본인의 언어로 정리하기
인터페이스 vs 클래스
- Set은 Java에서 인터페이스이다. 따라서 직접적으로 인스턴스화할 수 없다. 대신에 HashSet, TreeSet, LinkedHashSet 등과 같은 Set 인터페이스를 구현한 클래스를 사용한다.
- HashSet은 Set 인터페이스를 구현한 클래스 중 하나이다.
중복 요소
- Set 인터페이스는 중복 요소를 허용 X 따라서 Set에 중복된 요소를 추가하려고 하면 무시
- HashSet 역시 중복된 요소를 허용 X 요소가 이미 HashSet에 존재하는 경우 추가되지 않는다.
내부 구현
- HashSet은 해시 테이블(hash table)로 구현된다.
이는 해시 함수를 사용하여 요소를 저장하므로 검색, 삽입 및 삭제 작업이 일반적으로 매우 빠르다!! - Set 인터페이스의 다른 구현인 TreeSet은 이진 검색 트리(binary search tree)로 구현되어 있으며, 요소가 정렬된 순서로 저장된다.
마지막으로, 표로 정리
특징 | Set | HashSet |
구현 형태 | 인터페이스 | 클래스 |
순서 보장 | 구현 클래스에 따라 다름 | 순서를 보장하지 않음 |
중복 요소 허용 | 중복 요소를 허용하지 않음 | 중복 요소를 허용하지 않음 |
내부 구현 | 구현 클래스에 따라 다름 | 해시 테이블(hash table)로 구현 |
검색 성능 | 구현 클래스에 따라 다름 | 해시 함수를 사용하여 매우 빠른 검색 성능 |
추가/삭제 성능 | 구현 클래스에 따라 다름 | 해시 함수를 사용하여 매우 빠른 추가/삭제 성능 |
'TIL' 카테고리의 다른 글
99클럽 코테 스터디 2일차 TIL + SQL 문자함수 (0) | 2024.03.27 |
---|---|
99클럽 코테 스터디 1일차 TIL + SQL 단일 행 함수 (0) | 2024.03.26 |