본문 바로가기
[개발] 언어/Java

Set - HashSet 사용하는 방법

by Devsong26 2017. 11. 14.

- HashSet이란?

Set인터페이스를 구현한 hash table입니다. 

 

 

- 특징

(1) 입력된 순서로 저장되지 않습니다. 

(2) element의 중복을 허용하지 않습니다. 

(3) null element를 허용합니다. 

(4) 동기화처리가 되지 않습니다. 

동기화 처리를 하기 위해서는 아래와 같이 객체를 생성해야 합니다. 

Set s = Collections.synchronizedSet(new HashSet(...));

 

 

- 생성자

 

//첫번째 생성자
HashSet<String> hs1 = new HashSet<String>();

//두번째 생성자
HashSet<String> hs2 = new HashSet<String>(hs1);

//세번째 생성자
HashSet<String> hs3 = new HashSet<String>(10);

//네번째 생성자
HashSet<String> hs4 = new HashSet<String>(10, 0.7f);

 

첫번째 생성자는 initial capacity(16), load factor(0.75)를 가진 HashSet객체를 생성합니다. 

두번째 생성자는 Collection클래스의 객체를 매개변수로 입력하여 그 객체의 element의 모든 원소를 가진 HashSet객체를 생성합니다.

세번째 생성자는 loadfactor(0.75), 매개변수로 입력된 initialCapacity값을 가진 HashSet객체를 생성합니다. 

네번째 생성자는 입력된 initialCapacity, loadFactor값을 가진 HashSet객체를 생성합니다. 

 

 

- 메소드 

(1) add(E e)    반환형: boolean

입력되는 객체가 HashSet객체 안에 존재하지 않는다면 그 객체를 HashSet에 입력하고 true를 반환합니다.

그렇지 않을 경우 false를 반환합니다. 

 

(2) clear()    반환형: void

HashSet객체의 모든 element를 삭제합니다. 

 

(3) clone()    반환형: Object

HashSet객체의 복사본을 생성 후 반환합니다. 원본과 복사본의 참조주소는 다릅니다. 

 

(4) contains(Object o)    반환형: boolean

입력되는 객체를 HashSet객체가 가지고 있다면 true, 아니면 false를 반환합니다.

 

(5) isEmpty()    반환형: boolean

HashSet객체가 비어있다면 true, 아니면 false를 반환합니다. 

 

(6) iterator()    반환형: Iterator<E>

HashSet객체에 대한 Iterator객체를 반환합니다.

 

(7) remove(Object o)    반환형: boolean

입력된 매개변수 o가 HashSet객체에 존재한다면 그 값을 삭제한 후 true, 없다면 false를 반환합니다. 

 

(8) size()    반환형: int

HashSet객체가 가지고 있는 element의 수를 반환합니다. 

 

이상으로 포스팅을 마칩니다. 

 

 

 


더 많은 내용을 보시려면 아래를 참고하세요.


블로그의 다른 글

 

Set - LinkedHashSet 사용하는 방법

1. LinkedHashSet이란? Set인터페이스를 구현하고 Hash Set클래스를 상속받은 Linked List입니다. 2. 특징 - iteration 작업을 할 경우, Set에 삽입된 순서대로 접근합니다. - 데이터 중복을 허용하지 않으며, 중

developer-syubrofo.tistory.com

 

List - LinkedList 사용하는 방법

1. LinkedList란? Deque, List인터페이스를 구현한 Doubly-Linked list입니다. 2. 특징 - 노드들로 이루어져있으며, 각 Node는 [데이터 | 다음 노드의 주소값]을 갖습니다. - 리스트의 원소에 접근하는 것은 Node..

developer-syubrofo.tistory.com

 

lang package - String 사용하는 방법

1. String이란? 문자열을 나타내는 클래스입니다. 2. 특징 - Java에서 사용되는 모든 String literal은 모두 String으로 구현된 객체입니다. - String 객체를 생성 후에 객체의 문자열을 변경할 수 없습니다.

developer-syubrofo.tistory.com

 

java - Generics & Wildcard

1. Generics란? - 자바 컬렉션 프레임워크는 자료구조로써 여러 타입의 객체를 저장할 수 있다. 컬렉션은 여러 타입의 객체를 저장하기 위해 기본적으로 입력 타입을 최상위 부모 클래스인 Object 

developer-syubrofo.tistory.com

 

Apache POI

아파치 POI는 서버에 엑셀파일을 업로드하기 위해 사용해봤다. 위키백과의 설명에 따르면 아래와 같다. 아파치 POI(Apache POI)는 아파치 소프트웨어 재단에서 만든 라이브러리로서 마이크로소프

developer-syubrofo.tistory.com