[TIL] 컬렉션 - java.util.Set<E> 인터페이스 & 구현 클래스
Set<E> 인터페이스의 특징
- 순서를 유지하지 않는 데이터의 집합
- 중복 허용 X
- 하나의 NULL만 저장 가능
- 주요 구현 클래스 : HashSet, LinkedHashSet, TreeSet
- Set 인터페이스와 구현 클래스 계층도
Hashset
- 저장 순서 X
- 중복 허용 X
- 멀티 쓰레드 환경 동기화X
- 하나의 NULL값 저장
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package ex0813;
import java.util.HashSet;
import java.util.Set;
public class Collection_Hashset_Ex1 {
public static void main(String[] args) {
//중복 x 순서x
Set<String> set = new HashSet<>();
set.add("버즈");
set.add("겁쟁이");
set.add("쌈자");
set.add("가시");
set.add("모노로그");
set.add("은인");
set.add("여행");
set.add("일기");
set.add("나무");
set.add("민경훈");
set.add("리즈");
set.add("와우");
set.add("와우"); // 중복을 허용하지 않으므로 기존것을 덮어버린다.
System.out.println(set);
System.out.println("전체 출력 ..");
for(String s : set) {
System.out.print(s+" ");
}
System.out.println();
}
}
/* [쌈자, 은인, 민경훈, 버즈, 겁쟁이, 여행, 모노로그, 와우, 가시, 나무, 리즈, 일기] 전체 출력 .. 쌈자 은인 민경훈 버즈 겁쟁이 여행 모노로그 와우 가시 나무 리즈 일기 */
|
cs |
TreeSet
SortedSet 인터페이스를 구현한 클래스
정렬된 순서로 반복(오름차순)
중복 허용x
멀티 쓰레드 환경 동기화x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package ex0813;
import java.util.Set;
import java.util.TreeSet;
public class Collection_LinkedHashSet_Ex2 {
public static void main(String[] args) {
//중복 x 오름차순 정렬
Set<String> set = new TreeSet<>();
set.add("버즈");
set.add("겁쟁이");
set.add("쌈자");
set.add("가시");
set.add("모노로그");
set.add("은인");
set.add("여행");
set.add("일기");
set.add("나무");
set.add("민경훈");
set.add("리즈");
set.add("와우");
set.add("와우"); // 중복을 허용하지 않으므로 기존것을 덮어버린다.
System.out.println(set);
System.out.println("전체 출력 ..");
for(String s : set) {
System.out.print(s+" ");
}
System.out.println();
}
}
/* 출력 값
[가시, 겁쟁이, 나무, 리즈, 모노로그, 민경훈, 버즈, 쌈자, 여행, 와우, 은인, 일기]
전체 출력 ..
가시 겁쟁이 나무 리즈 모노로그 민경훈 버즈 쌈자 여행 와우 은인 일기
*/
|
cs |
LinkedHashSet
- HashSet 하위 클래스
- hash table과 linked list를 구현한 set
- 삽입되는 순서대로 저장
- 중복 허용x
- 멀티 쓰레드 환경 동기화 x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package ex0813;
import java.util.LinkedHashSet;
import java.util.Set;
public class Collection_TreeSet_Ex3 {
public static void main(String[] args) {
//중복 x 순서0 : 등록 순서대로
Set<String> set = new LinkedHashSet<>();
set.add("버즈");
set.add("겁쟁이");
set.add("쌈자");
set.add("가시");
set.add("모노로그");
set.add("은인");
set.add("여행");
set.add("일기");
set.add("나무");
set.add("민경훈");
set.add("리즈");
set.add("와우");
set.add("와우"); // 중복을 허용하지 않으므로 기존것을 덮어버린다.
System.out.println(set);
System.out.println("전체 출력 ..");
for(String s : set) {
System.out.print(s+" ");
}
System.out.println();
}
}
/*
[버즈, 겁쟁이, 쌈자, 가시, 모노로그, 은인, 여행, 일기, 나무, 민경훈, 리즈, 와우]
전체 출력 ..
버즈 겁쟁이 쌈자 가시 모노로그 은인 여행 일기 나무 민경훈 리즈 와우
*/
|
cs |
'Language > JAVA' 카테고리의 다른 글
[TIL] 컬렉션 - java.util.Queue<E> 인터페이스 & 구현클래스 (0) | 2020.09.08 |
---|---|
[TIL] 컬렉션 - java.util.Map<K, V> 인터페이스 & 구현클래스 (0) | 2020.09.07 |
[TIL] 컬렉션 - java.util.Enumeration & Iterator (0) | 2020.09.07 |
[TIL] 컬렉션 - java.util.List<E> 인터페이스 & 구현 클래스 (0) | 2020.08.24 |
[TIL] 컬렉션 프레임워크 (0) | 2020.08.14 |
댓글