오랜만에 binarySearch 를 사용하는데, 결과값이 이상하게 나왔다. 그래서 잠깐 또 구글의 도움을 받아서 기억을 다시 상기시키고, 그리고 혹시 다시 찾게 될까 봐 정리를 해 놓는다.
binarySearch 사용시 주의할 사항
- binarySearch 는 array 가 이미 sort 가 되어있다는 전제를 하고 검색을 한다.
- binarySerarch 가 사용하는 Comparator 가 sort()에 사용된 Comparator 와 같아야 한다.
public class MainClass { /** * @param args */ public static void main(String[] args) { String key1 = "ssds"; String key2 = "abc"; String[] params = {key1, key2 }; List<String> list = Arrays.asList(params); Collections.sort(list); // 이 sort() 가 없으면 결과 값이 달라진다.
for(String s: list){ System.out.println(s); } int pos = Collections.binarySearch(list, key2); System.out.println(pos); } }
댓글 없음:
댓글 쓰기