SetSet : 중복을 허용하지 않고 순서를 보장하지 않는 자료 구조수학에서 집합의 특성을 가지고 있다.HashSetHashSet의 특징해시 자료 구조를 사용해서 요소를 저장한다.해시 함수로 각 데이터의 해시 코드를 구한 후 특정 연산을 통해 해시 인덱스를 구해서 저장한다.요소들은 특정한 순서 없이 저장된다.주요 연산(추가, 삭제, 검색)은 평균적으로 O(1) 소요된다.데이터의 유일성만 중요하고 순서가 중요하지 않은 경우에 사용한다. 해시 기반 자료 구조를 사용하는 경우 통계적으로 입력 데이터 수가 배열 크기의 75%를 넘어서면 해시 충돌이 자주 발생한다.잦은 해시 충돌로 인해 같은 해시 인덱스에 들어간 데이터를 모두 탐색하며 O(n)으로 성능이 나빠진다.데이터의 양이 배열 크기의 75%를 넘어서면 배열..
HashSet해시 함수 (Hash Function) : 임의의 길이의 데이터를 입력받아 고정된 길이의 해시 값(해시 코드)을 출력하는 함수.같은 데이터를 입력하면 항상 같은 해시 코드가 출력된다.다른 데이터를 입력해도 같은 해시 코드가 출력될 수 있다. => 해시 충돌해시 코드 (Hash Code) : 데이터를 대표하는 값을 의미한다.해시 코드는 보통 해시 함수를 통해 만들어진다.해시 인덱스 (Hash Index) : 데이터의 저장 위치를 결정한다.해시 인덱스는 보통 해시 코드를 사용해서 만든다.보통 해시 코드의 결과에 배열의 크기를 나눠 구한다.문자 데이터를 사용하더라도 문자의 고유한 숫자를 통해 해시 함수를 사용해서 정수 기반의 해시 코드로 변환한 덕분에 해시 인덱스를 사용할 수 있다.hashCode..
Set 인터페이스Collection 인터페이스를 확장한 인터페이스로 순서에 상관없이 데이터 존재 여부를 확인하기 위한 용도로 사용한다.중복되는 것을 방지, 원하는 값이 포함되어 있는지를 확인하는 것이 주 목적.데이터 추가 시 자동으로 데이터가 중복되지 않고 저장된다.Set 인터페이스를 구현한 클래스HashSet : 순서가 전혀 필요없는 데이터를 HashTable에 저장하며 Set 중 가장 성능이 좋다. (별도의 정렬 작업x)TreeSet : 저장된 데이터의 값에 따라서 정렬되는 Set, red-black이라는 tree타입으로 저장된다.LinkedHashSet : 연결된 목록 타입으로 구현된 HashTable에 데이터 저장, 저장된 순서에 따라 값이 정렬되며 성능이 가장 나쁘다.성능 차이가 발생하는 이유는..