TreeSet

LEEEEEEE·2023년 9월 20일

Java

목록 보기
4/8

TreeSet

  1. 정렬된 순서를 유지하며 중복된 원소를 허용하지 않는 집합(set)자료 구조
  2. 내부적으로 이진 검색트리라는 자료구조를 기반으로 합니다.
  3. 정렬 기준을 결정하기 위해 'comparable'인터페이스와 'comparator' 객체를 활용합니다.

이진트리


이미지출처 : https://towardsdatascience.com/8-useful-tree-data-structures-worth-knowing-8532c7231e8c

이진 트리는 LinkedList처럼 여러개의 노드가 서로 연결된 구조로 각 노드에 최대 2개의 노드를 연결할 수 있으며 루트(root)라고 불리는 하나의 노드에서부터 시작해서 확장될 수 있다.
위 아래로 연결된 두 노드를 '부모-자식관계'라 하며 위의 노드를 부모 노드, 아래의 노드를 자식 노드라 한다.

	class TreeNode{
		TreeNode left;	// 왼쪽 자식노드 
    	Object element; // 객체를 저장하기위한 참조변수
    	TreeNode right; // 오른쪽 자식노드
	}

TreeSet의 메서드

  • add(E e): 지정된 원소를 TreeSet에 추가합니다.
	treeSet.add("Apple");
	treeSet.add("Banana");
	treeSet.add("Cherry");
  • remove(Object o): 지정된 원소를 TreeSet에서 제거합니다.
	boolean removed = treeSet.remove("Banana");
  • contains(Object o): 지정된 원소가 TreeSet에 포함되어 있는지 여부를 확인합니다.
	boolean contains = treeSet.contains("Cherry");
  • TreeSet이 비어 있는지 여부를 확인합니다. 비어 있으면 true를 반환하고, 원소가 하나 이상 포함되어 있으면 false를 반환합니다.
	boolean isEmpty = treeSet.isEmpty();
  • size(): TreeSet에 저장된 원소의 개수를 반환합니다.
	int size = treeSet.size();
  • clear(): TreeSet의 모든 원소를 제거하여 비웁니다.
	treeSet.clear();
  • iterator(): TreeSet의 원소를 반복하기 위한 반복자(Iterator)를 반환합니다. 반복자를 사용하여 TreeSet의 모든 원소를 순회할 수 있습니다.
	Iterator<String> iterator = treeSet.iterator();
while (iterator.hasNext()) {
    String element = iterator.next();
    // 원소(element)에 대한 작업 수행
}
  • first(): TreeSet에서 가장 작은 원소를 반환합니다.
	String firstElement = treeSet.first();
  • last(): TreeSet에서 가장 큰 원소를 반환합니다.
	String lastElement = treeSet.last();
  • lower(E e): 주어진 원소 e보다 작은 원소 중에서 가장 큰 원소를 반환합니다. e보다 작은 원소가 없으면 null을 반환합니다.
	String lowerElement = treeSet.lower("Banana");
  • higher(E e): 주어진 원소 e보다 큰 원소 중에서 가장 작은 원소를 반환합니다. e보다 큰 원소가 없으면 null을 반환합니다.
	String higherElement = treeSet.higher("Banana");
  • toArray(): TreeSet의 원소를 배열로 변환합니다.
	String[] array = treeSet.toArray(new String[0]);

테스트 코드

profile
한단계씩 성장하고 싶은 개발자

0개의 댓글