인프런 커뮤니티 질문&답변

박철현님의 프로필 이미지

작성한 질문수

자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)

정렬된 수에서 하나의 수의 위치 찾기(이진탐색)

이진 탐색 문제 질문드립니다

작성

·

117

0

이진 탐색 문제에서, 자바의 TreeSet이 레드-블랙 트리 알고리즘으로 구현된걸로 알고있는데, 그냥 TreeSet을 생성해서 값을 넣고 contains로 검색하면 되는거랑 선생님이 직접 코드로 푼거랑 뭐가 다른걸까요??

답변 1

0

박은종님의 프로필 이미지
박은종
지식공유자

Set의 경우는 key 값만을 사용하고 key값은 colleciton으로 반환 받아서, JDK 내부의 contatins() 코드는 아래와 같습니다. 하나의 iteration을 돌면서 체크하는 것은 크게 다르지 않습니다.

public boolean contains(Object o) {

Iterator<E> it = iterator();

if (o==null) {

while (it.hasNext())

if (it.next()==null)

return true;

} else {

while (it.hasNext())

if (o.equals(it.next()))

return true;

}

return false;

}