📅  最后修改于: 2023-12-03 14:42:46.018000             🧑  作者: Mango
Java的 Collections 类提供了一组静态方法,用于操作集合和数组。其中一个常用的方法是 binarySearch()
,可以在有序集合(如列表)或数组中使用二分查找算法来查找指定元素。使用二分查找算法可以快速定位元素,尤其适用于大型有序集合或数组。
binarySearch()
方法返回目标元素在集合中的索引,或者如果集合中不存在目标元素,则返回一个负数值来指示元素的插入点。
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
list
:要进行查找的有序列表或数组。key
:要查找的目标元素。假设我们有一个已排序的整数列表 numbers
,现在要搜索数字 7
在列表中的索引。
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
public class BinarySearchExample {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(3);
numbers.add(5);
numbers.add(7);
numbers.add(9);
int result = Collections.binarySearch(numbers, 7);
System.out.println("Index of 7: " + result);
}
}
输出结果应为 Index of 7: 3
。
根据返回的索引,我们可以看到数字 7
在列表中的索引为 3
。
注意:在使用 binarySearch()
方法之前,必须确保集合中的元素已经按升序排序。如果集合未排序,可能得到不正确的结果。
Collections.binarySearch()
方法是在有序集合或数组中进行二分查找的常用工具。通过了解该方法的语法、参数和返回值,并结合示例,程序员可以轻松使用该方法来定位目标元素在集合或数组中的位置。