1. TreeSet
TreeSet은 Binary Search Tree의 형태입니다. 좀더 향상시킨 레드 블랙 트리입니다.
Binary Search Tree는 검색, 정렬에 매우 효율적인 Data Structure입니다.
마찬가지로 Set의 특성에 따라 중복을 허용하지 않고 순서도 유지하지 않습니다.
Binary Search Tree는 여러 노드를 연결리스트처럼 연결한 형태로 한 노드당 두 개의 노드를 연결할 수 있습니다.
루트노드 부터 시작을 해서 부모와 자식 관계로 이루어집니다.
// 이진트리의 노드를 코드로 표현
class TreeNode {
TreeNode left; // 왼쪽 자식 노드
Object element; // 객체를 저장하기 위한 참조변수
TreeNode light; // 오른쪽 자식 노드
}
TreeSet에는Comparable, Comparator을 이용해서 두 객체를 비교하게 하면서 저장을 진행해야합니다.
2019/07/20 - [프로그래밍 언어/Java] - Java- 컬렉션 프레임워크(Comparator, Comparable)
- 노드는 최대 두개 노드
- 부모보다 왼쪽 자식이 작고 부모보다 오른쪽 자식이 크다.
- 노드 추가 삭제는 많은 시간이 걸린다.
- 검색,정렬에 효율적이다.
- 중복, 순서는 허용하지 않는다.
public class TreeSet {
public static void main(String[] args) {
Set set = new TreeSet();
for (int i = 0; set.size() < 6; i++) {
int num = (int) (Math.random() * 45) + 1;
set.add(num);
}
System.out.println(set);
}
}
[1,5,20,28,29,34]
정렬하면서 값을 저장하고 불러올 때는 이미 정렬이 된 상태이기 때문에 따로 필요가 없습니다.
범위를 검색하려면 아래 코드를 작성합시다.
TreeSet set = new TreeSet();
...
//a부터 알파벳 넣기
set.subSet("a","z");
기준을 통해서 전과 후의 범위를 검색하려면 아래 코드를 작성합시다.
TreeSet set = new TreeSet();
set.headSet(new Integer(20));
set.tailSet(new Integer(20));
- headSet: 기준보다 작은 값
- tailSet: 기준보다 큰 값
'프로그래밍 언어 > Java' 카테고리의 다른 글
Java- 컬렉션 프레임워크(TreeMap) (0) | 2019.07.23 |
---|---|
Java- 컬렉션 프레임워크(HashMap) (0) | 2019.07.22 |
Java- 컬렉션 프레임워크(HashSet) (0) | 2019.07.21 |
Java- 컬렉션 프레임워크(Comparator, Comparable) (0) | 2019.07.20 |
Java- 컬렉션 프레임워크(Arrays) (0) | 2019.07.19 |