Collections.binarySearch()期望元素按升序排列:
sort(List)在进行此调用之前,必须根据列表元素的自然顺序将其按升序排序(例如通过方法)。如果未排序,则结果不确定。
如果要对降序列表进行二进制搜索,请使用
Comparator.reverseOrder():
int indeks = Collections.binarySearch(arrList, 7, Comparator.reverseOrder());
indeks现在为0,对应于列表的第一个元素。
请注意,您可以使用相同的比较器对列表进行降序排序,而不是先升序然后倒序:
Collections.sort(arrList, Comparator.reverseOrder());



