프로그래밍 스티치

HashSet으로 변환하면 왜 오름차순이 되는걸까? 본문

JAVA/컬렉션 프레임워크

HashSet으로 변환하면 왜 오름차순이 되는걸까?

프로그래밍 스티치 2022. 2. 9. 22:33

list 참조변수를 여러 컬렉션 클래스로 변환하여 연습하는 문제

 

이 문제는 ArrayList를 HashSet나 TreeSet 마지막으로는 Stack으로 변환하는 과정중에 데이터에 어떠한 변화가 생기는지 알아보는 문제이다. 가장 핵심인 16~19째 줄을 살펴보자.

 

HashSet set = new HashSet(list); // 중복요소들이 제거되고 순서유지 안됨 2,6,3,7

​

TreeSet tset = new TreeSet(set); // 오름차순으로 정렬된다. 2,3,6,7

​

Stack stack = new Stack(); // Stack에 넣었다 꺼내면 저장순서가 반대가 된다.

​

stack.addAll(tset); // TreeSet의 저장된 모든 요소를 stack에 담는다.

 

여기서 2번째 TreeSet으로 넣으면 왜 오름차순으로 정렬되는지 처음에는 감이 잘 안왔다.

 

TreeSet이 전위, 중위, 후위 순회법이 있는건 아는데 디폴트값이 중위 순회라서 오름차순으로 정렬되어서 그런걸까? 

 

트리 순회

이진 트리의 모든 노드를 한번 씩 읽는것을 트리 순회라고 한다.

 

순회에는 전위, 중위, 후위, 레벨 순회법이 있다. 각각의 순회법들을 자세히 알아보자

 

 

'JAVA > 컬렉션 프레임워크' 카테고리의 다른 글

Arrays의 메서드  (0) 2022.02.08
컬렉션 프레임워크  (0) 2022.02.07