You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何用Arrays.binarySearch判断数组是否存在70-79区间数值

实现逻辑

你可以利用Arrays.binarySearch的返回值规则完成区间判断,规则如下:

  • 找到目标值时返回对应索引,未找到目标值时返回 -(插入点) - 1,其中插入点是第一个大于目标值的元素下标,如果所有元素都小于目标值,插入点等于数组长度
  • 我们只需要查找边界值70,再根据返回结果判断是否存在元素落在70-79区间即可

完整实现代码

import java.util.Arrays;

public class RangeCheck {
    public static void main(String[] args) {
        int temperatures[] = {45, 70, 71, 67}; 
        Arrays.sort(temperatures); 
        int searchResult = Arrays.binarySearch(temperatures, 70);
        boolean isExist = false;

        if (searchResult >= 0) {
            // 数组中存在70,直接符合条件
            isExist = true;
        } else {
            // 计算第一个大于70的元素的下标
            int insertPos = -searchResult - 1;
            // 判断下标不越界,且对应的元素小于等于79
            if (insertPos < temperatures.length && temperatures[insertPos] <= 79) {
                isExist = true;
            }
        }
        System.out.println(isExist ? "Yes" : "no");
    }
}

逻辑验证场景

  • 数组为{68, 75, 80}:查找70失败,插入点为1,对应元素75<=79,输出Yes
  • 数组为{68, 80}:查找70失败,插入点为1,对应元素80>79,输出no
  • 数组为{80, 90}:查找70失败,插入点为0,对应元素80>79,输出no
  • 数组为{65, 69}:查找70失败,插入点为2等于数组长度,输出no

内容的提问来源于stack exchange,提问作者pythonbeginner90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:57:04