필자가 작성한 addToSorted
함수는 기본적으로 Java에 의해 제공되지 않지만 매우 간단합니다. Collections.binarySearch
함수는 요소가 발견되면 값 >= 0
을 반환하고 값을 찾을 수없는 경우 값을 < 0
으로 반환합니다. 후자의 경우 삽입 위치를 반환합니다 (다소 음수가되도록 인코딩 됨).
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class BinSort {
private static void addToSorted(List<String> list, String element) {
int index = Collections.binarySearch(list, element);
if (index < 0)
list.add(-(index + 1), element);
}
public static void main(String[] args) {
List<String> words = new ArrayList<String>();
words.add("apple");
words.add("cat");
words.add("tree");
addToSorted(words, "banana");
System.out.println(words);
}
}
대문자와 상관없이 String을 비교하는 Comparator 클래스를 작성하는 것은 매우 쉽습니다. –
Mike
@Mike : 실제로 그렇습니다! –
원래 포스터는'PriorityQueue'가 구현하지 않는'List'를 요청했습니다. –