java.util.Collections.binarySearch() 方法用于使用二进制文件在指定列表中搜索指定对象搜索算法。在进行此调用之前,必须根据其元素的自然顺序(如通过 sort(List) 方法)将列表按升序排序。如果未排序,则结果不确定。如果列表包含多个等于指定对象的元素,则无法保证会找到哪一个。
语法
public static <T> int binarySearch(List<? extends Comparable<? super T>> list,
T key)
这里,T是列表中元素的类型。
参数
list | 指定要搜索的列表。 |
type | 指定要搜索的键。 |
返回值
返回搜索键的索引,如果它包含在列表;否则,(-(插入点) - 1)。插入点定义为将键插入到列表中的点:大于键的第一个元素的索引,或者如果列表中的所有元素都小于指定键,则为 list.size() 。请注意,这保证了当且仅当找到该键时,返回值将为 >= 0。
Exception
抛出 ClassCastException,如果列表包含不可相互比较的元素(例如字符串和整数),或者搜索键与列表的元素不可相互比较。
示例:
在示例中下面,java.util.Collections.binarySearch() 方法用于在给定列表中搜索给定元素。
import java.util.*;
public class MyClass {
public static void main(String[] args) {
//创建List对象
List<Integer> MyList = new ArrayList<Integer>();
//填充列表
MyList.add(10);
MyList.add(20);
MyList.add(30);
MyList.add(40);
MyList.add(50);
//30 出现在索引 = 2 处
System.out.println(Collections.binarySearch(MyList, 30));
//35 不在列表中。插入点
//35 将是 3。因此,返回 (-3-1) = -4
System.out.println(Collections.binarySearch(MyList, 35));
}
}
上述的输出代码为:
2
-4