Java binarysearch algo on descendant list

ic3*_*ic3 5 java list

在Java Collections.binarysearch()适用于按升序排序的列表.是否有一种简单的方法可以对具有降序的列表进行二进制搜索?

更改列表不是一种选择

dle*_*lev 6

有一个超载binarySearch()接受自定义Comparator.称之为一个,传递一个反转普通比较结果的比较器.

例如,如果您有List<Integer>,则调用:

int index = Collections.binarySearch<Integer>(
             intList, Integer.valueOf(1), Collections.reverseOrder());
Run Code Online (Sandbox Code Playgroud)

(感谢@MarkPeters使用`Collections.reverseOrder().)

  • [`Collections.reverseOrder()`](http://download.oracle.com/javase/7/docs/api/java/util/Collections.html#reverseOrder())在这里非常方便.您不需要自己创建反向"比较器". (3认同)