일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- react state
- tech interview
- 자바 기술면접
- 기술면접
- 생활코딩
- node.js
- 알고리즘
- AtomEditor
- 리액트
- Java tech interview
- 맥북 사용법
- 아톰에디터
- Express middleware
- Node.js Express
- 백준
- jsx 문법
- 자바 인터뷰
- 맥북 팁
- 자바 개발자
- 맥북 필수 앱
- React
- 자바 면접
- 맥북 초보
- 백준 단계별로 풀어보기
- 자바 영어면접
- mysql
- 맥북 유용한 앱
- React props
- 백준 알고리즘
- react jsx
- Today
- Total
song.log
[자바 기술면접] 27. set 컬렉션 - HashSet, TreeSet 본문
- 정의
Set 컬렉션(Set Collection) : 저장 순서를 유지하지 않고 중복된 원소를 허용하지 않는 자료구조입니다. 따라서 순서에 상관 없이 중복값을 하고자 하지 않을 때 유용하게 쓰입니다.
HashSet : Set 컬렉션 내에서 가장 자주 사용되는 클래스로 해시 알고리즘(Hash Algorithm)을 사용하였습니다. 내부적으로 HashMap을 사용하여 원소를 저장합니다. 순서를 보장하지 않으며 null 값을 포함할 수 있습니다. HashSet은 검색, 추가, 삭제 등의 연산에서 O(1)의 시간 복잡도를 가지므로 대용량의 데이터를 처리할 때 효율적입니다. 하지만 요소들의 순서를 보장하지 않으므로 순서가 중요한 경우에는 TreeSet과 같은 다른 Set 구현체를 사용해야 합니다.
TreeSet : Set 인터페이스를 구현한 클래스 중 하나로, 이진 검색 트리(binary search tree)의 형태로 데이터를 저장합니다. TreeSet에 저장된 요소들은 자동으로 오름차순으로 정렬됩니다. 이진 검색 트리는 데이터를 추가, 검색, 삭제할 때 평균 O(log n)의 시간복잡도를 갖기 때문에 검색과 정렬에 유용합니다. 하지만 TreeSet은 내부적으로 이진 검색 트리를 사용하기 때문에, 데이터를 추가, 삭제, 검색하는 시간이 많이 소요됩니다.
- 영어 정리 :
Set Collection : It is a data structure that does not maintain the storage order and does not allow duplicate elements. Therefore, it is useful when you want to remove duplicates regardless of order.
HashSet : It is the most commonly used class in the Set Collection, and uses a hash algorithm. Internally, it uses a HashMap to store elements. It does not guarantee order and can include null values. HashSet has a time complexity of O(1) for operations such as search, add, and delete, making it efficient for processing large amounts of data. However, since it does not guarantee the order of elements, if order is important, other Set implementations such as TreeSet should be used.
TreeSet : It is one of the classes that implements the Set interface, and stores data in the form of a binary search tree. The elements stored in TreeSet are automatically sorted in ascending order. Binary search trees are useful for searching and sorting with an average time complexity of O(log n) when adding, searching, and deleting data. However, since TreeSet uses a binary search tree internally, adding, deleting, and searching data takes a lot of time.
'StudyLog > Java interview' 카테고리의 다른 글
[자바 기술면접] 29. 제네릭(Generic)이란? (0) | 2023.04.30 |
---|---|
[자바 기술면접] 28. Map 컬렉션 - HashMap, TreeMap, LinkedHashMap, ConcurrentHashMap (0) | 2023.04.30 |
[자바 기술면접] 26. 리스트 컬렉션 - ArrayList, LinkedList, Vector (0) | 2023.04.30 |
[자바 기술면접] 25. 직렬화, 역직렬화 (0) | 2023.04.29 |
[자바 기술면접] 24. 데몬스레드란? (0) | 2023.04.29 |