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

Set - LinkedHashSet 사용하는 방법

by Devsong26 2017. 11. 17.

1. LinkedHashSet이란?

Set인터페이스를 구현하고 Hash Set클래스를 상속받은 Linked List입니다. 

 

 

2. 특징

- iteration 작업을 할 경우, Set에 삽입된 순서대로 접근합니다. 

- 데이터 중복을 허용하지 않으며, 중복 입력을 할 경우 나중에 입력된 데이터는 입력되지 않습니다.

- null element를 허용합니다. 

- Performance는 HashSet보다 약간 떨어집니다. 

하지만, initial capacity값을 지나치게 크게 잡았을 경우에는 HashSet보다는 Performance가 좋습니다. 

- initial capacity, load factor를 가집니다. 

(설명: http://developer-syubrofo.tistory.com/7?category=775478)

- 동기화가 되지 않습니다. 

동기화가 되는 Set객체를 사용하려면 아래와 같이 생성해야 합니다.

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

- iterator()메소드를 호출하여 iterator 객체를 가져온 후에는 Set객체의 데이터를 수정할 경우 ConcurrentModificationException 에러가 발생합니다.

 

 

3. 생성자

 

//1st Constructor
LinkedHashSet<Double> set1 = new LinkedHashSet<Double>();

//2st Constructor
LinkedHashSet<Double> set2 = new LinkedHashSet<Double>(set1);

//3st Constructor
LinkedHashSet<Double> set3 = new LinkedHashSet<Double>(10);

//4st Constructor
LinkedHashSet<Double> set4 = new LinkedHashSet<Double>(10, 0.75f);

 

첫번째 생성자는 기본생성자로써 initial capacity(16), load factor(0.75)를 갖는 빈 LinkedHashSet객체를 생성합니다. 

두번째 생성자는 매개변수로 입력된 Collection객체의 원소들과 동일 원소들을 갖는 LinkedHashSet객체를 생성합니다. 

세번째 생성자는 매개변수로 입력된 initialCapacity와 load factor(0.75)를 갖는 빈 LinkedHashSet객체를 생성합니다.

네번재 생성자는 매개변수로 입력된 initialCapacity, load factor를 갖는 빈 LinkedHashSet객체를 생성합니다. 

 

 

4. 메소드

HashSet과 동일합니다.

http://developer-syubrofo.tistory.com/32?category=775478

 

Set - HashSet 사용하는 방법

- HashSet이란? Set인터페이스를 구현한 hash table입니다. - 특징 (1) 입력된 순서로 저장되지 않습니다. (2) element의 중복을 허용하지 않습니다. (3) null element를 허용합니다. (4) 동기화처리가 되지 않습.

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

 

JUnit

JUnit이란? TDD 방법론에 의해 자바에서 테스트 코드를 작성할 때 사용하는 서바 사이드 테스트 도구이다. JUnit은 단정문(테스트의 성공과 실패를 판별하는 문장)인 assert 메소드를 이용하여 테스트

developer-syubrofo.tistory.com