效验连续区间

来源:互联网 发布:叮叮软件 编辑:程序博客网 时间:2024/05/16 19:45

效验连续区间Demo 主要针对 一下需求 

    /**
     * 效验是否是 连续 区间 内容 
     * 效验内容   0-100 
     *       100-200 
     *       200-300 
     *       300-- 正无穷 
     *      当前计算公式   
     *      0< X <=100
     *      100< X <=200
     *      200< X <=无穷
     * @return
     */
    public static BaseResult getResult(List<int[]> list) {
        BaseResult result = new BaseResult();


        //String msg = "小哥 你的东西超标了,不包含标准";
        //当前 传入的是一个 list 包含的int数组 类型    


        //判断传入的list是否为空
        if (!list.isEmpty()) {
            //定义一个   存储     flag  标记  
            //当前定义  begin 和 end 结束记录起始结束标志
            int begin = 0;
            int end = 0;//冗余字段 TODO
            //获取集合中第一个数组 元素判断 是否 0 开始
            int[] first = list.get(0);
            if (first.length != 0) {
                //判断当前的length是否 =2  是包含两个元素 否则只有 起始没有结束


                if (first.length == 2) {


                    for (int i = 0; i < first.length; i++) {
                        //判断 当前的起始位 是否 是 0开始
                        if (first[0] != 0) {
                            result.setMsg("当前的起始位置不为0!!!");
                            result.setState(1);//当前为空  
                            return result;
                        }


                        //开始为0  正常情况
                        //初始变量 begin为    后者情况


                        begin = first[1];//将前者结束值作为 后者开始 值
                        //跳出当前 循环 执行下面步骤 
                        break;
                    }


                } else {
                    //当前的只有开区间 没有结尾
                    result.setMsg("当前 只有开区间 ,没有闭合区间!!!");
                    result.setState(1);//当前为空  
                    return result;
                }


            }


            for (int i = 1; i < list.size(); i++) {


                //去除第一位  开始 循环 
                int[] array = list.get(i);
                //判断当前的遍历数组是否 存在闭合区间 
                if (array.length < 2) {
                    //当前区间            没有闭合  


                    //自定义一份闭合区间  (当前位置 自己作为处理)
                    //array[]=new int[2];
                    array[1]=100000000;
                    
                }else{
                    
                  //当前 开闭合 区间 (正常区间)
                    //获取begin  区间  和         end 区间
                    //判断当前的begin 区间是否是 上一个 结束
                    if (array[0] != begin) {
                        result.setMsg(
                            "区间 设置不符合规范   !!!     " + "开始 区间 是+" + array[0] + "结束区间 是+" + array[1]);
                        result.setState(1);//当前为空  
                        return result;
                    }
                    //正常 当前begin==上一个结束
                    //将第二个值设置 初始值 
                    
                    begin=array[1];
                }
                


            }


        } else {


            result.setMsg("传入的东西 为空了!!!");
            result.setState(1);//当前为空  
            return result;
        }
        result.setState(0);
        return result;
    }

随手写的,如果有更好的方法请给博主留言改正!