Arrays.binarySearch坑

        // 二分查找前先对其排序
        Arrays.sort(newRulesIds);
        bindingRules.forEach(v -> {
            if (Arrays.binarySearch(newRulesIds, v.getRulesid()) < 0)
            {
                deleteBindingRulesIds.add(v.getId());
            }
        });

Arrays.binarySearch方法如果找不到数组中值,将不会和indexOf一样返回-1。。。不要和我一样当indexOf使。。。

 

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

你可能感兴趣的:(java)