首页 \ 问答 \ 如何在Java中排序方法后清除缓冲区?(How to clear buffer after sorting method in Java?)

如何在Java中排序方法后清除缓冲区?(How to clear buffer after sorting method in Java?)

我有方法在Java中排序元素,它工作正常但我需要在排序后清除缓冲区。 看起来旧值保留在缓冲区和复制当前数据及其不良。 谁能知道解决方案?

我的排序方法:

public List<InterimOrders> getInterimOrdersList() {

    if(interimOrdersList == null){
        interimOrdersList = new ArrayList<InterimOrders>();
        interimOrdersList.addAll(interimOrdRepo.findByLocation(location));


        for(InterimOrders io: interimOrdersList){

            if(io.isOnceAMonth()){
                List<Object[]> tmpList = new ArrayList<Object[]>();
                long[] datyLongTab = new long[3];

                    Object[] tmpOb = new Object[1];
                    tmpOb[0] = (Object)io.getDate1();


                    if(io.getDate1() != null){
                        datyLongTab[0] =  io.getDate1().getTime();
                    }
                    else{
                        datyLongTab[0] = 9223372036854775807L;
                    }
                    tmpList.add(tmpOb);


                    tmpOb = new Object[1];
                    tmpOb[0] = (Object)io.getDate2();

                    if(io.getDate2() != null){
                        datyLongTab[1] =  io.getDate2().getTime();
                    }
                    else{
                        datyLongTab[1] = 9223372036854775807L;
                    }
                    tmpList.add(tmpOb);


                    tmpOb = new Object[1];
                    tmpOb[0] = (Object)io.getDate3();


                    if(io.getDate3() != null){
                        datyLongTab[2] =  io.getDate3().getTime();
                    }
                    else{
                        datyLongTab[2] = 9223372036854775807L;
                    }
                    tmpList.add(tmpOb);
                    Arrays.sort(datyLongTab);  for(int i=0; i<3; i++){
                        long dat = 9223372036854775807L;
                        for(Object[] ele: tmpList){
                             if(ele[0] != null){
                                 dat = ((Date)ele[0]).getTime();
                             }


                             if(dat==datyLongTab[i]){

                                switch(i){
                                    case 0:
                                        io.setDate1((Date)ele[0]);

                                        break;
                                    case 1:
                                        io.setDate2((Date)ele[0]);

                                        break;
                                    case 2:
                                        io.setDate3((Date)ele[0]);

                                        break; }


                                break;
                            }
                        }

                    }


            }return interimOrdersList;

I have method to sorting elements in Java, it works fine but i need to clear buffer after sorting. It looks like old value stay in buffer and repolace current data and its bad. Can anybody know the solution?

My sorting method:

public List<InterimOrders> getInterimOrdersList() {

    if(interimOrdersList == null){
        interimOrdersList = new ArrayList<InterimOrders>();
        interimOrdersList.addAll(interimOrdRepo.findByLocation(location));


        for(InterimOrders io: interimOrdersList){

            if(io.isOnceAMonth()){
                List<Object[]> tmpList = new ArrayList<Object[]>();
                long[] datyLongTab = new long[3];

                    Object[] tmpOb = new Object[1];
                    tmpOb[0] = (Object)io.getDate1();


                    if(io.getDate1() != null){
                        datyLongTab[0] =  io.getDate1().getTime();
                    }
                    else{
                        datyLongTab[0] = 9223372036854775807L;
                    }
                    tmpList.add(tmpOb);


                    tmpOb = new Object[1];
                    tmpOb[0] = (Object)io.getDate2();

                    if(io.getDate2() != null){
                        datyLongTab[1] =  io.getDate2().getTime();
                    }
                    else{
                        datyLongTab[1] = 9223372036854775807L;
                    }
                    tmpList.add(tmpOb);


                    tmpOb = new Object[1];
                    tmpOb[0] = (Object)io.getDate3();


                    if(io.getDate3() != null){
                        datyLongTab[2] =  io.getDate3().getTime();
                    }
                    else{
                        datyLongTab[2] = 9223372036854775807L;
                    }
                    tmpList.add(tmpOb);
                    Arrays.sort(datyLongTab);  for(int i=0; i<3; i++){
                        long dat = 9223372036854775807L;
                        for(Object[] ele: tmpList){
                             if(ele[0] != null){
                                 dat = ((Date)ele[0]).getTime();
                             }


                             if(dat==datyLongTab[i]){

                                switch(i){
                                    case 0:
                                        io.setDate1((Date)ele[0]);

                                        break;
                                    case 1:
                                        io.setDate2((Date)ele[0]);

                                        break;
                                    case 2:
                                        io.setDate3((Date)ele[0]);

                                        break; }


                                break;
                            }
                        }

                    }


            }return interimOrdersList;

原文:https://stackoverflow.com/questions/19986534
更新时间:2023-06-15 17:06

最满意答案

在初始化幻灯片时,听起来好像没有加载循环插件。 检查firebug中的NET选项卡或Chrome开发人员工具中的资源选项卡。 确保循环链接在幻灯片代码之前。 此外,在初始化循环时确保DOM已准备就绪:

$(function() {
    $('#slides').cycle({ 
        fx: 'scrollLeft'
    });
});

要么

$(document).ready(function() {
    $('#slides').cycle({ 
        fx: 'scrollLeft'
    });
});

It sounds like the cycle plugin isn't loaded when you're initializing the slideshow. Check the NET tab in firebug or the resources tab in Chrome developer tools. Make sure the link to cycle is before your slideshow code. Also, make sure the DOM is ready when you initialize cycle:

$(function() {
    $('#slides').cycle({ 
        fx: 'scrollLeft'
    });
});

or

$(document).ready(function() {
    $('#slides').cycle({ 
        fx: 'scrollLeft'
    });
});

相关问答

更多