📜  Java中的 Collections.binarySearch() 和示例(1)

📅  最后修改于: 2023-12-03 14:42:46.018000             🧑  作者: Mango

Java中的 Collections.binarySearch()

介绍

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() 方法是在有序集合或数组中进行二分查找的常用工具。通过了解该方法的语法、参数和返回值,并结合示例,程序员可以轻松使用该方法来定位目标元素在集合或数组中的位置。