List는 순서가 중요한 데이터를 담을 때 사용된다.
Set은 순서와 상관없이 , 어던 데이터가 존재하는지를 확인하기 위한 용도로 많이 사용된다. 중복을 방지하고, 원하는 값이 포함되어 있는지를 확인하는 것이 주 용도이다.
순서가 전형 필요없는 데이터를 해시 테이블에 저장한다. Set 중에 가장 성능이 좋다.
저장된 데이터의 값에 따라서 정렬되는 셋이다. red-black이라는 트리 타입으로 값이 저장되며, HashSet 보다 약간 성능이 느리다.
연결된 목록 타입으로 구현된 해시 테이블에 데이터를 저장한다. 저장된 순서에 따라서 값이 정렬된다. 대신 성능이 이 셋 중에서 가장 나쁘다.
각 노드의 색을 붉은 색 혹은 검은 색으로 구분하여 데이터를 빠르고, 쉽게 찾을 수 있는 구조의 이진 트리를 말한다.

모든 노드에 대해 '자신이 가진 자료는 자신보다 오른쪽에 위치한 부분트리가 가지고 있는 모든 자료보다 작거나 같고, 자신보다 왼쪽에 위치한 부분트리가 가지고 있는 모든 자료보다 크거나 같다' 라는 조건을 만족한다. 이런 특성 때문에 특정 값을 빠르게 찾아 낼 수 있으며, 각 구성원소(elements)간의 효율적인 in-order traversal이 가능하다.
HashSet의 기본 생성자는 데이터를 저장할 수 있는 16개의 공간과 0.75의 로드 팩터를 갖는 객체를 생성한다.
로드 팩터는 (데이터의 개수) / (저장 공간) 을 의미 한다. 만약 데이터의 개수가 증가하여 로드 팩터보다 커지면, 저장 공간의 크기가 증가되고 해시 재정리 작업을 해야만 한다. 데이터가 해시 재정리 작업에 들어가면, 내부에 갖고 있는 자료구조를 다시 생성하는 단계를 거쳐야 하므로 성능에 영향이 발생한다.