最近比较忙,处理项目上各种问题。此时有新任务来临,赶时间记录一个方法,加深对数组的理解

    @Test
    public void posdwe(){
        String sadsd = "3,4,5,6,7,8,9,10,a,b,g,h,r,e,s,45,67";
        String[] mList = sadsd.split(",");
        int haven = 5;
        System.out.println("原字符串"+sadsd+"太长,业务里面需要进行分组,按照每组"+haven+"个,来执行,最后的一组size按照剩余元素个数来定义");
        int j = 0;
        if (mList.length>haven){
            j = mList.length/haven;
            j++;
        }
//        System.out.println(j);
        List resList = new ArrayList();
        for (int i = 1; i <= j; i++) {
            List<String> mList00 = new ArrayList();
            if(haven*i > mList.length){
                for(int g = haven*(i-1) ;g< mList.length;g++){
                    if(g<haven){
                        mList00.add(g, mList[g]);
                    }else{
                        mList00.add(g%haven, mList[g]);
                    }
                }
            }else{
                for(int g = haven*(i-1) ;g< haven*i;g++){
                    if(g<haven){
                        mList00.add(g, mList[g]);
                    }else{
                        mList00.add(g%haven, mList[g]);
                    }
                }
            }

            /**调用业务接口
                * 把业务接口返回结果累计到一个父数组 resList.addAll();
                *  。。。
                * 调用完毕
             * */

            String[] strs1=mList00.toArray(new String[mList00.size()]);
            String ll="";
            for (String q: strs1) {
                System.out.println(q);
                ll +=q;
                ll +=" ";
            }
            System.out.println(ll);
        }
        /**输出业务结果
         * resList
         * */
    }

 

 

  

这是项目上出现的一个问题,前人写的时候,没想到in("","",.....)有大于1000列的情况,于是项目后台报ORA-01795

于是想到了这个方法,这只是一个很笨的方法,每次修复问题,时间都给的很紧张,其实对于这种的逻辑,最优的改法,是减少对数据库的撞击。从性能方面考虑,改进实现方式。

脑子里有多种方法,但是也不能随意改底层。谁能懂改bug没源码的痛。

posted @ 2019-11-25 10:17  眸色  阅读(193)  评论(0编辑  收藏  举报