-1. 이전글
2018/12/31 - [내 맘대로 알고리즘] - Java ArrayList, Vector 예제
2019/01/01 - [내 맘대로 알고리즘] - Java Queue, Priority Queue 예제
0.
Set
Set은 데이터의 중복된 값이 없는 자료구조입니다.
따라서,
AABBBCCDD의 값이 순사적으로 입력되더라도
ABCD의 값만 남아있게 되는 자료구조입니다.
Android Developer에는
중복 요소가없는 컬렉션입니다.
이 인터페이스는 이름에서 알 수 있듯이 수학적 집합 추상을 모델링합니다.
라고 적혀있습니다.
1. HashSet
HashSet은 기본적인 Set의 구조를 갖고 있는 자료구조입니다.
중복된 값이 없는 자료구조이며, 별다른 특징이 없지만, 그렇기 때문에 Set중에서 가장 빠른 속도를 제공하고 있습니다.
또한 Set이 Interface로 되어 있기 때문에, Set<T> set = new HashSet<T>(); 으로 자료구조를 초기화합니다.
1-1. Method
1 2 3 | normalSet.add("data"); //data를 추가 normalSet.remove("data");//set에서 data라는 요소를 제거 normalSet.contains("data");//set에서 data라는 요소를 | cs |
Set에서는 add, remove, contains와 같이 데이터를 추가하거나, 제거, 확인하는
매소드를 제공해주고 있습니다.
2.LinkedHashSet
LinkedHashSet은 Set을 인터페이스로 갖고 있으며, 들어오는 데이터의 순서를 보장하고 있는 자료구조입니다.
또한 Set이 Interface로 되어 있기 때문에, Set<T> set = new LinkedHashSet<T>(); 으로 객체를 생성합니다.
.
2-1. Method
1 2 3 | linkedSet.add("data"); //data를 추가 linkedSet.remove("data");//set에서 data라는 요소를 제거 linkedSet.contains("data");//set에서 data라는 요소를 확인 |
Set에서는 add, remove, contains와 같이 데이터를 추가하거나, 제거, 확인하는
매소드를 제공해주고 있습니다.
3. TreeSet:
TreeSet은 Set을 인터페이스로 갖고 있으며, 들어오는 데이터의 가중치를 보장하고 있는 자료구조입니다.
또한 Set이 Interface로 되어 있기 때문에, Set<T> set = new TreeSet<T>(); 으로 객체를 생성합니다.
3-1. Method
1 2 3 | treeSet.add("data"); //data를 추가 treeSet.remove("data");//set에서 data라는 요소를 제거 treeSet.contains("data");//set에서 data라는 요소를 확인 | cs |
Set에서는 add, remove, contains와 같이 데이터를 추가하거나, 제거, 확인하는
매소드를 제공해주고 있습니다.
4. Example
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 43 44 45 46 47 48 49 50 51 52 | import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; import java.util.TreeSet; public class ExampleTreeSet { public static void main(String[] args) { Set<String> normalSet = new HashSet<String>(); normalSet.add("banana"); normalSet.add("cat"); normalSet.add("apple"); normalSet.add("banana"); normalSet.add("cat"); normalSet.add("apple"); normalSet.add("star"); normalSet.add("host"); print("HashSet ",normalSet); Set<String> treeSet = new TreeSet<String>(); treeSet.add("banana"); treeSet.add("cat"); treeSet.add("apple"); treeSet.add("banana"); treeSet.add("cat"); treeSet.add("apple"); treeSet.add("star"); treeSet.add("host"); print("TreeSet ",treeSet); Set<String> linkedSet = new LinkedHashSet<String>(); linkedSet.add("banana"); linkedSet.add("cat"); linkedSet.add("apple"); linkedSet.add("banana"); linkedSet.add("cat"); linkedSet.add("apple"); linkedSet.add("star"); linkedSet.add("host"); print("LinkedHashSet ",linkedSet); } public static void print(String dataStructure,Set<String> treeSet) { System.out.print(dataStructure); System.out.print("value: "); treeSet.forEach(value->{ System.out.print(value+" "); }); System.out.println(" "); } } | cs |
4-1. Result
|
'내 맘대로 알고리즘' 카테고리의 다른 글
LeetCode[day2] - Happy Number (0) | 2020.04.21 |
---|---|
LeetCode[day1] - Single Number (1) | 2020.04.20 |
Java Queue, Priority Queue 예제 (0) | 2019.01.01 |
Java ArrayList, Vector 예제 (0) | 2018.12.31 |
[프로그래머스 알고리즘] - 베스트앨범 with Java (0) | 2018.12.26 |