List
- 순서 (Order): List는 원소들을 입력된 순서대로 유지합니다. 즉, 원소의 삽입 순서가 유지되며, 인덱스를 통해 원소에 접근할 수 있습니다.
- 중복 (Duplicates): List는 중복된 원소를 허용합니다. 즉, 동일한 값이 여러 번 나타날 수 있습니다.
- 자바에서 List 인터페이스를 구현한 클래스로는 ArrayList, LinkedList 등이 있습니다.
Set
- 순서 (Order): Set은 원소들의 순서를 보장하지 않습니다. 삽입 순서가 유지되지 않으며, 인덱스를 통해 원소에 직접 접근할 수 없습니다.
- 중복 (Duplicates): Set은 중복된 원소를 허용하지 않습니다. 동일한 값은 한 번만 저장됩니다.
- 자바에서 Set 인터페이스를 구현한 클래스로는 HashSet, TreeSet 등이 있습니다.
HashSet <> LinkedList, ArrayList
- HashSet은 중복된 원소를 허용하지 않습니다.
- LinkedList와 ArrayList는 중복된 원소를 허용합니다.
- HashSet은 해시 테이블을 사용하여 원소의 검색과 삽입이 평균적으로 O(1) 시간에 이루어집니다.
- LinkedList와 ArrayList는 원소의 검색은 O(n) 시간 소요됩니다.
- ArrayList의 경우 배열에 삽입할 때 배열 크기를 조절해야 할 수도 있어 O(n) 시간이 걸릴 수 있습니다.