zoukankan      html  css  js  c++  java
  • 对已有的2个一维数组,譬如说A[],B[],经过最少循环找出2个数组重复的元素。

    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 - 如果搜索的键不能与数组的元素进行比较。

  • 相关阅读:
    97. Interleaving String
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    94. Binary Tree Inorder Traversal
    odoo many2many字段 指定打开的form视图
    docker sentry 配置文件位置
    postgres 计算时差
    postgres 字符操作补位,字符切割
    postgres判断字符串是否为时间,数字
    odoo fields_view_get
  • 原文地址:https://www.cnblogs.com/baizhanshi/p/5437614.html
Copyright © 2011-2022 走看看