首页 > 编程语言 > 详细

操作数组的相关程序

时间:2015-04-06 12:52:42      阅读:270      评论:0      收藏:0      [点我收藏+]
    /**
     *  * 判断修改会员等级的合法性
     * 1.当sorts大于数据库中所有的sorts值时 (1,3) 5
     * 2.当sorts小于于数据库中所有的sorts值时 1 (3,5)
     * 3.当sorts等于数据库中所有的sorts值时 1 (1,3,5)
     * 4.当sorts在数据库中能找到大于和小于它的值时 3 (1,5)
     * 说明:1.首先判断list的长度,(大于1,等于1,等于0)三种情况
     *        2.当list.size()>1,将数据库中的sort字段组成字符串,再转换成数组 
     *        2.1当sorts等于数据库中所有的sorts值时 1 (1,3,5)
     *        2.2得到该数组中的最大,最小值
     *        2.3.当sorts大于数据库中所有的sorts值时 (1,3) 5
     *        2.4当sorts小于于数据库中所有的sorts值时 1 (3,5)
     *        2.5当sorts在数据库中能找到大于和小于它的值时 3 (1,2,4,5)    
     *        2.5.1 拆分(1,2,4,5)得到3之前的数据组成 数组 [1,2] ,再得到 3之前一位数据 进行判断
     *        2.5.2 拆分(1,2,4,5)得到3之后的数据组成 数组 [4,5]   ,再得到3之后一位数据 进行判断
     * @param sorts  会员等级排序
     * @param limitMax 所需累计最小值  (用最小值保存累计数值,最大值留着以后用)
     * @param upd   用于判断是否是修改验证 0 :不是  1:是
     * @param req
     * @param resp
     * @return
     */
    @RequestMapping("/leveljudgetwo.jhtml")
    @ResponseBody
    public String levelJudgeTwo(@RequestParam int sorts,
                 @RequestParam int limitMax,@RequestParam int upd,@RequestParam String                                    sortflag,HttpServletRequest req,
            HttpServletResponse resp) {
        int shop_id = 2;
        String str = "yes";
        String str1 = "";
        boolean flag = true;
        List<MemberLevel> list = this.memberLevelService.listObjectAll();//遍历所有的对象
        System.out.println("sorts------------------"+sorts);
        System.out.println("limitMax------------------"+limitMax);

        /*
         * 当list.size()>1,将数据库中的sort字段组成字符串,再转换成数组
         */
        if (list.size() > 1) {
            for (MemberLevel level : list) {
                int sortsTwo = level.getSort();
                str1 = str1 + sortsTwo + ",";
            }
            str1 = str1.substring(0, str1.length() - 1);
            String[] arr = str1.split(",");

            String [] arrOne = {sortflag};

            String[] arrResult = this.memberLevelService.arrContrast(arr, arrOne);     

            for(int i=0;i<arrResult.length;i++){
                if(sorts==Integer.parseInt(arrResult[i])){
                    flag = false;
                }
            }

            //              for (int i = 0; i < arr.length; i++) {
            ////                    System.out.println("arr[]--------"+arr[i]);
            //                  /*
            //                   * 3.当sorts等于数据库中所有的sorts值时 1 (1,3,5)
            //                   */
            //                  if (sorts == Integer.parseInt(arr[i])) {//当数据库中已经有了该等级的sort, flag=false
            //                      flag = false;
            //                      break;
            //                  }
            //              }

            /*
             * 得到该数组中的最大,最小值
             */
            int nMax = Integer.parseInt(arr[0]);//最大值
            int nMin = Integer.parseInt(arr[0]);//最小值
            for (int i = 0; i < arr.length; i++) {
                if (nMin > Integer.parseInt(arr[i])) {
                    nMin = Integer.parseInt(arr[i]);
                }

                if (nMax < Integer.parseInt(arr[i])) {
                    nMax = Integer.parseInt(arr[i]);
                }
            }
            MemberLevel level2 = this.memberLevelService.getObjectBySort(shop_id, nMax);//通过店铺ID 和排序号找到对象
            MemberLevel level3 = this.memberLevelService.getObjectBySort(shop_id, nMin);//通过店铺ID 和排序号找到对象
            int limit_max1 = level2.getLimit_max();//所需累计最小值  (用最小值保存累计数值,最大值留着以后用)
            int limit_max2 = level3.getLimit_max();//所需累计最小值  (用最小值保存累计数值,最大值留着以后用)

            /*
             * 1.当sorts等于于数据库中所有的sorts值时 (1,3,5) 5   
             */
            if (sorts >= nMax) {
                int max = Integer.parseInt(arr[0]);         //最大值    
                int second =Integer.parseInt(arr[1]);      //次大值   
                for(int i = 0;i < arr.length;i++)  
                {  
                    if(Integer.parseInt(arr[i]) > max)       //更新最大值和次大值   
                    {  
                        second = max;      
                        max = Integer.parseInt(arr[i]);  
                    }  
                    else if(Integer.parseInt(arr[i]) < max && Integer.parseInt(arr[i]) > second)  //更新次大值    
                    {  
                        second = Integer.parseInt(arr[i]);  //得到3的值
                    }  
                    MemberLevel level5 = this.memberLevelService.getObjectBySort(shop_id, second);//通过店铺ID 和排序号找到对象
                    int limit_max5 = level5.getLimit_max();//所需累计最小值  (用最小值保存累计数值,最大值留着以后用)

                    if (limitMax <= limit_max5) {//不满足条件,flag=false
                        flag = false;
                    }
                }
            }




            /*
             * 2.当sorts等于最小值数据库中所有的sorts值时 1 (1,3,5)
             */
            if (sorts <= nMin) {

                int min = Integer.parseInt(arr[0]);         //最大值    
                int second =Integer.parseInt(arr[1]);      //次大值  
                if (min > second) {  //找到数组中第二小的值
                    min = Integer.parseInt(arr[1]);  
                    second = Integer.parseInt(arr[0]);  
                }  
                for (int i = 2; i < arr.length; ++ i) {  
                    if (Integer.parseInt(arr[i]) < min) {  
                        second = min;  
                        min = Integer.parseInt(arr[i]);  
                    } else if (Integer.parseInt(arr[i]) < second) {  
                        second = Integer.parseInt(arr[i]);  
                    }  
                }  
                MemberLevel level6 = this.memberLevelService.getObjectBySort(shop_id, second);//通过店铺ID 和排序号找到对象
                int limit_max6 = level6.getLimit_max();//所需累计最小值  (用最小值保存累计数值,最大值留着以后用)


                if (limitMax >= limit_max6) {//不满足条件,flag=false
                    flag = false;
                }
            }


            System.out.println("flag----------------------"+flag);

            /*
             * 4.当sorts在数据库中能找到大于和小于它的值时 3 (1,2,3,4,5)
             */
            String str2 = "";
            String str3 = "";
            if (nMin < sorts && sorts < nMax) {
                for (int j = 0; j < arr.length; j++) {
                    int p1 = 0;
                    int p2 = 0;
                    /*
                     * sorts前面的数据组成数组
                     */
                    if (Integer.parseInt(arr[j])< sorts) {
                        str2 = str2 + arr[j] + ",";

                        p1++;

                    }


                    if (p1 > 1) {//sort之前的数字超过1个
                        str2 = str2.substring(0, str2.length() - 1);
                        System.out.println("str2----------"+str2);
                        String[] arr2 = str2.split(",");

                        int nMax2 = Integer.parseInt(arr[0]);
                        for (int i = 1; i < arr2.length; i++) {

                            if (nMax2 < Integer.parseInt(arr2[i])) {
                                nMax2 = Integer.parseInt(arr2[i]);
                            }
                        }


                        MemberLevel level7 = this.memberLevelService.getObjectBySort(shop_id, nMax2);
                        int limit_max7 = level7.getLimit_max();

                        if (limitMax < limit_max7) {
                            flag = false;
                        }

                    } else {//sort之前的数字只有1个

                        if (limitMax <= limit_max1) {
                            flag = false;
                        }
                    }

                    /*
                     * sorts后面的数据组成数组
                     */
                    if (Integer.parseInt(arr[j]) >sorts) {
                        str3 = str3 + arr[j] + ",";

                        p2++;

                    }

                    if (p2 > 1) {//sort之前的数字超过1个
                        str3 = str3.substring(0, str3.length() - 1);
                        System.out.println("str3----------"+str3);

                        String[] arr2 = str3.split(",");

                        int nMax3 = Integer.parseInt(arr[0]);
                        for (int i = 1; i < arr2.length; i++) {

                            if (nMax3 < Integer.parseInt(arr2[i])) {
                                nMax3= Integer.parseInt(arr2[i]);
                            }
                        }

                        MemberLevel level8 = this.memberLevelService.getObjectBySort(shop_id, nMax3);
                        int limit_max8 = level8.getLimit_max();

                        if (limitMax >= limit_max8) {
                            flag = false;
                        }

                    } else {//sort之后只有一个数

                        if (limitMax >=limit_max2) {
                            flag = false;
                        }
                    }

                }


            }

        }

        if(!flag){//flag状态用于判断
            str = "no";
        }       
        return str;
    }

操作数组的相关程序

原文:http://blog.csdn.net/wuzhiweiwuzhiwei/article/details/44900833

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!