java.util —Arrays

asList(T… a)

 String[] strArray = {"spring", "summer", "fall", "winter"};
        List strList = Arrays.asList(strArray);

binarySearch(byte[] a, byte key)

binarySearch(byte[] a, int fromIndex, int toIndex, byte key)

byte a = 0;
        byte[] bArray = {4, 3, 2, 1};
        Arrays.sort(bArray);
        System.out.println("4在数组中的位置是" + Arrays.binarySearch(bArray, a));//  返回的是排序后的位置
        System.out.println("4在数组中的位置是" + Arrays.binarySearch(bArray, 3, 4, a));
使用二分搜索法来搜索指定的 byte 型数组的范围,以获得指定的值。必须在进行此调用之前对范围进行排序(通过 sort(byte[], int, int) 方法)。如果没有对范围进行排序,则结果是不确定的。如果范围包含多个带有指定值的元素,则无法保证找到的是哪一个。

参数:
a - 要搜索的数组
fromIndex - 要搜索的第一个元素的索引(包括)
toIndex - 要搜索的最后一个元素的索引(不包括)
key - 要搜索的值

返回:
如果它包含在数组的指定范围内,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点:即范围中第一个大于此键的元素索引,如果范围中的所有元素都小于指定的键,则为 toIndex。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
抛出:
IllegalArgumentException - 如果 fromIndex > toIndex
ArrayIndexOutOfBoundsException - 如果 fromIndex < 0 或 toIndex > a.length

对于byte\char\short\long\int是相似的
对于Object类型的数组:(如果范围包含不可相互比较的元素,例如,字符串和整数,则无法 根据其元素的自然顺序对范围进行排序,因此结果是不确定的。)

对于floatdouble数组:认为认为所有 NaN 值都是等效且相等的
// binarySearch(char[] a, char key)
        //  binarySearch(char[] a, int fromIndex, int toIndex, char key)
        char c = 'a';
        char[] charArray = {'a', 'b', 'c'};
        Arrays.sort(charArray);
        System.out.println("'a'的位置是" + Arrays.binarySearch(charArray, c));
        System.out.println("'a的位置是" + Arrays.binarySearch(charArray, 0, 3, c));

        // binarySearch(double[] a, double key)
        // binarySearch(double[] a, int fromIndex, int toIndex, double key)
        double d = 4.5;
        double[] doubleArray = {1.3, 4.5, 3.0, 1.1, 4.5};
        Arrays.sort(doubleArray);
        System.out.println("4.5的位置是" + Arrays.binarySearch(doubleArray, d));
        System.out.println("4.5的位置是" + Arrays.binarySearch(doubleArray, 3, 4, d));

        // binarySearch(float[] a, float key)
        // binarySearch(float[] a, int fromIndex, int toIndex, float key)
        float f = 3.6f;
        float[] floatArray = {(float) 3.6, (float) 1.1, (float) 2.2, (float) 3.6};
        Arrays.sort(floatArray);
        System.out.println("3.6的位置是" + Arrays.binarySearch(floatArray, f));
        System.out.println("3.6的位置是" + Arrays.binarySearch(floatArray, 2, 3, f));

        // binarySearch(int[] a, int key)
        // binarySearch(int[] a, int fromIndex, int toIndex, int key)
        int i = 5;
        int[] intArray = {1, 2, 3, 5, 7, 4};
        Arrays.sort(intArray);
        System.out.println("5的位置是" + Arrays.binarySearch(intArray, i));
        System.out.println("5的位置是" + Arrays.binarySearch(intArray, 4, 5, i));

        // binarySearch(long[] a, int fromIndex, int toIndex, long key)
        // binarySearch(long[] a, long key)
        long l = 5;
        long[] longArray = {1, 2, 3, 5, 7, 4};
        Arrays.sort(longArray);
        System.out.println("5的位置是" + Arrays.binarySearch(longArray, i));
        System.out.println("5的位置是" + Arrays.binarySearch(longArray, 4, 5, i));

        // binarySearch(Object[] a, int fromIndex, int toIndex, Object key)
        // binarySearch(Object[] a, Object key)
        String s1 = "hello1";
        String s2 = "hello2564";
        String[] strArr = new String[]{"h123", "h345", "h012"};
        Arrays.sort(strArr);
        System.out.println(s1.compareTo(s2));// 小于
        System.out.println("h123的位置是"+Arrays.binarySearch(strArr,"h123"));
        System.out.println("h123的位置是"+Arrays.binarySearch(strArr,0,2,"h123"));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值