CODEDRAGON ㆍDevelopment/Algorithm, DataStructure
HashSet 클래스
· 기본적인 Set인터페이스를 구현하고 있는 대표적인 컬렉션입니다.
· HashSet은 내부적으로 HashMap을 이용하여 만들어 졌으며 해시(Hash)를 이용해서 구현되었기 때문에 붙여진 이름입니다.
· Set인터페이스의 특징대로 정렬순서나 반복처리시 처리순서에 대한 기준은 없습니다.(비정렬)
· HashSet에 새로운 요소를 추가하기 위해 add(), addAll()메소드를 사용하며 이 때 이미 저장되어 있는 요소와 중복이 될 경우 해당 메소드는 false를 반환하여 중복된 요소로 인해 추가가 실패했음을 알려줍니다. 이러한 HashSet의 특징을 이용하면 컬렉션 내의 중복 요소들을 쉽게 제거할 수 있습니다.(중복불가)
· List인터페이스를 구현한 ArrayList 컬렉션과 달리 HashSet은 저장순서를 유지하지 않으므로 저장순서를 유지하려면 LinkedHashSet을 사용해야 합니다.
· 반복 처리시에는 저장된 요소(Element)의 수와는 별도로 용량에 비례하는 시간이 필요하므로 반복 처리하는 성능이 중요한 응용프로그램에서는 초기용량을 너무 높게 설정하지 않는 것이 중요합니다.
· HashSet 클래스는 Set 인터페이스를 구현하므로, 요소를 순서에 상관없이 저장하고 중복된 값은 저장하지 않습니다. 만약 요소의 저장 순서를 유지해야 한다면 JDK 1.4부터 제공하는 LinkedHashSet 클래스를 사용하면 됩니다.
HashSet 생성자
생성자명 |
설명 |
HashSet() |
· 새로운 HashSet 객체를 생성하고 초기화합니다. |
HashSet(Collection c) |
· 주어진 컬렉션을 포함하는 HashSet객체를 생성합니다. |
HashSet(int initialCapacity) |
· 주어진 값을 초기용량으로 하는 HashSet객체를 생성합니다. |
HashSet(int initialCapacity, float loadFactor) |
· 초기용량과 load factor를 지정하는 생성자입니다. · loadFactor는 컬렉션 클래스에 저장공간이 가득차기 전에 미리 용량을 확보하기 위한 것입니다. 이값을 0.8로 설정하면 저장공간의 80%가 가득차게 되면 용량이 두 배로 늘어나게 됩니다. · loadFactor의 기본값은 0.75(75%)입니다. |
'Development > Algorithm, DataStructure' 카테고리의 다른 글
해시 알고리즘(hash algorithm), 해시 알고리즘을 이용한 자료 구조 도식도 (0) | 2017.10.17 |
---|---|
HashSet 메소드 (0) | 2017.10.17 |
Set<E> 인터페이스의 특성과 HashSet<E> 클래스 (0) | 2017.10.16 |
Set 인터페이스의 주요메소드 (0) | 2017.10.15 |
Set 인터페이스 (0) | 2017.10.14 |