관련 이론 및 문법

(데이터 정렬 참고)

http://kkikkodev.tistory.com/222


문제 의도

주어진 소스코드의 39 라인에 추가하여, HashMap 형 변수 props 안의 key 들을 정렬할 수 있는 것을 고르는 문제입니다.


답안

B


풀이 방법

소스코드를 보면 34 라인에서 HashMap 형 변수 props 를 생성하고 있습니다. 35 부터 37 라인까지 key 와 value 3 쌍을 HashMap 에 넣고 있습니다. 38 라인에서, props.keySet() 문을 통해 HashMap 의 모든 키들 ("key45", "key12", "key38") 을 Set 형태로 추출하여 Set 형 변수 s 에 대입합니다.


먼저 보기 A 인, Arrays.sort(s); 문을 보면, 이는 배열 정렬에 사용되는 구문이므로, (s 는 배열이 아닌 Set 이므로) 답안 후보에서 제외합니다.


보기 B 인, s = new TreeSet(s); 문을 살펴보면, 실제 TreeSet 생성자 중에, 매개변수로 Collection 을 받는 생성자가 있기 때문에, 이는 정상적으로 컴파일되고 정렬 또한 됩니다. (TreeSet 이라서) 따라서, 답안이 됩니다.


보기 C 인, Collections.sort(s); 문은 List 정렬시 사용하는 구문이라서, 답안 후보에서 제외합니다.


보기 D 인, s = new SortedSet(s); 문을 살펴보면, SortedSet 은 클래스가 아닌 인터페이스이므로, 직접 객체화 할 수 없습니다. 따라서 new SortedSet 형태로 생성자를 호출하면 안 됩니다. 결국 이 보기 또한 답안 후보에서 제외합니다.


결과적으로 답안은 B 가 됩니다.


by kkikkodev 2015. 8. 23. 00:28