Hash
2024. 5. 24. 08:07ㆍ김영한 Java/컬렉션 프레임워크
List vs Set
자료 구조에서의 List와 Set은 각각 특정한 방식으로 데이터를 저장하고 관리하는 데 사용된다.
리스트 (List)

정의 : 리스트는 요소들의 순차적인 컬렉션이다. 요소들은 특정 순서를 가지며, 같은 요소가 여러 번 나타날 수 있다.
특징 :
- 순서 유지 : 리스트에 추가된 요소는 특정한 순서를 유지한다. 이 순서는 요소가 추가된 순서를 반영할 수 있다.
- 중복 허용 : 리스트는 동일한 값이나 객체의 중복을 허용한다. 예를 들어, 같은 숫자나 문자열을 리스트 안에 여러 번 저장할 수 있다.
- 인덱스 접근 : 리스트의 각 요소는 인덱스를 통해 접근할 수 있다. 이 인덱스는 보통 0부터 시작한다.
용도 : 순서가 중요하거나 중복된 요소를 허용해야 하는 경우에 주로 사용된다.
세트, 셋 (Set)

- 정의 : 세트(셋)은 유일한 요소들의 컬렉션이다. 참고로 세트보다는 셋으로 많이 불린다.
- 특징
- 유일성 : 셋에는 중복된 요소가 존재하지 않는다. 셋에 요소를 추가할 때, 이미 존재하는 요소면 무시된다.
- 순서 미보장 : 대부분의 셋 구현에서는 요소들의 순서를 보장하지 않는다. 즉, 요소를 출력할 때 입력 순서와 다를 수 있다.
- 빠른 검색 : 셋은 요소의 유무를 빠르게 확인할 수 있도록 최적화되어 있다. 이는 데이터의 중복을 방지하고 빠른 조회를 가능하게 한다.
- 용도 : 중복을 허용하지 않고, 요소의 유무만 중요한 경우에 사용된다.
예시 :
- List : 장바구니 목록, 순서가 중요한 일련의 이벤트 목록
- Set : 회원 ID 집합, 고유한 항목의 집합
'김영한 Java > 컬렉션 프레임워크' 카테고리의 다른 글
| Hash - 해시 알고리즘1 - 시작 (0) | 2024.06.04 |
|---|---|
| Hash - 직접 구현하는 Set (0) | 2024.05.24 |
| List - 자바 리스트의 성능 비교 (0) | 2024.05.24 |
| List - 자바 리스트 (0) | 2024.05.23 |
| List - 리스트 추상화3 - 컴파일 타임, 런타임 의존관계 (0) | 2024.05.22 |