-
TreeSet은 중복되는 데이터가 들어오면 저장하지 않음!
그리고 자동 정렬되는 이진트리이다.
기본이 오름차순인데 Collections.reverseOrder() 하면 내림차순 정렬 된다.TreeSet<Integer> Tset = new TreeSet<>(Collections.reverseOrder());
- 값 추가 : Tset.add(143);
- 해당값 삭제 : Tset.remove(143);
- 원소 갯수 : Tset.size();
- 첫번째 원소 : Tset.first(); (오름차순일땐 최소값, 내림차순일땐 최대값 출력됨)
마지막 원소 : Tset.last(); (반대경우)
+ 참고로 set은 인덱스를 사용하지 않는다.
set은 순서가 없어서 list 처럼 출력 시 .get으로 출력이 안된다.
따라서 Iterator 객체를 만들어 줘서 출력하거나
Iterator<Integer> iter = Tset.iterator(); while(iter.hasNext()){ System.out.println( iter.next() ); }
빠른 for문으로 출력할 수 있다.
여기에서는 변수를 만들어 카운트 한 후에 출력하면 몇번째인지 알 수 있다.
int cnt=0; for(int x:Tset) { System.out.println(cnt + " : "+ x); cnt++; }
HashSet 과 TreeSet 과 LinkedHashSet의 차이??
- HashSet은 중복이 제거되고 순서가 없는 무작위 형태의 Set이고
- TreeSet은 HashSet에서 값에 따라(a-z, 1-9) 자동 정렬되는 Set이고
- LinkedHashSet은 add 한 순서에 따라 저장되는 Set이다
'자바알고리즘' 카테고리의 다른 글
자바 이진트리 순회(2.DFS - 넓이 우선탐색) (0) 2021.09.05 자바 이진트리 순회(1.DFS - 깊이 우선탐색) (0) 2021.09.04 재귀함수와 스택프레임 (0) 2021.09.03 정렬정리(선택정렬, 버블정렬 , 삽입정렬) (0) 2021.09.02 HashMap<Key, Value> 알고리즘 (0) 2021.08.21 댓글