0

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;
4

1 に答える 1