对已有的2个一维数组,譬如说A[],B[],经过最少循环找出2个数组重复的元素。...

本文详细介绍了Java中如何使用Arrays类的binarySearch方法实现二分搜索,并提供了具体示例代码。文章解释了方法的参数、返回值含义及可能出现的异常情况。
import java.util.Arrays;

/**
 * Created by ccc on 16-4-27.
 */
public class Test {
    public static void main(String arg[]) {
        int[] a = new int[]{1, 2, 4};
        int[] b = new int[]{1,2,4,5, 6, 9};
        Arrays.sort(a);
        Arrays.sort(b);
        int len = a.length;
        for (int i = 0; i < len; i++) {
            if (Arrays.binarySearch(b, a[i]) >= 0) {
                System.out.println(b[i]);
            }
        }
    }

}

Arrays.binarySearch();的用法。


public static int binarySearch(Object[] a,Object key)
     使用二分搜索法来搜索指定数组,以获得指定对象。在进行此调用之前,     必须根据元素的自然顺序对数组进行升序排序(通过 sort(Object[]) 方     法     )。如果没有对数组进行排序,则结果是不确定的。(如果数组包     含不可相互比较的元素(例如,字符串和整数),则无法 根据其元素的自     然顺序对数组进行排序,因此结果是不确定的。)如果数组包含多个等于     指定对象的元素,则无法保证找到的是哪一个。

参数:
      a - 要搜索的数组
      key - 要搜索的值

返回:
     如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1) 

     。插入点 被定义为将键插入数组的那一点:即第一       个大于此键的

     元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。注意     ,这保证了当且仅当此键被找到时,返回的值将 >= 0。

      否则返回 (-(插入点) - 1)这句话要注意:要是查询的的值小于数组里面

       的最小值那么结果(-(0)-1结果就是-1),如果查询的 值大于数组里面的       最大值。那么结果就是(-(它的索引值)-1结果就是-(1+索引值))

抛出: 
    ClassCastException - 如果搜索的键不能与数组的元素进行比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值