Функция 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);
}
}