Ordenar Array de objeto

2 respostas
S

Pessoal,
Estou fazendo a leitura de um arquivo .CSV no qual possui uma coluna com a data, porém desordenado.
Eu preciso que essa minha lista de objeto seja ordenada, onde ao todos os atributos deverão ser ordenados seguido pela Data.
Eu tentei usar o SORT, porém sem sucesso. Pensei no Comparator, porém não consegui usar.

public static void testecsv() throws IOException {

final BufferedReader ExcelFileToRead = new BufferedReader(new FileReader(C:\Users\ejhosou\Documents\PLANTAO\15-12-2015\KPI_clarobr_9am_12-15-2015.csv));

System.gc();

String linha = “”;

String csvDivisor = ,;

int i = 0;

ArrayListlistaKpis = new ArrayList();

//  kpisObject kpisobject = new kpisObject();

while ((linha = ExcelFileToRead.readLine()) != null) {
kpisObject kpisobject = new kpisObject();
        String[] kpis = linha.split(csvDivisor);
        
        
        kpisobject.setTime(kpis[0]); //>>> DATA
        kpisobject.setObject(kpis[1]);
        kpisobject.setAfter_Adm_Failure_Rate(kpis[2]);
        kpisobject.setPINT_A(kpis[3]);
        kpisobject.setPINTEUL_A(kpis[5]);
        kpisobject.setPINTHS_A(kpis[6]);
        kpisobject.setPINTHS_R_D(kpis[7]);
        kpisobject.setPINT_R_D_Act_User(kpis[8]);
        kpisobject.setSP_A(kpis[9]);
        kpisobject.setSP_R_D(kpis[10]);
        kpisobject.setAV_AUTO(kpis[11]);
        kpisobject.setAV_MAN(kpis[12]);
        listaKpis.add(kpisobject);

        //System.out.println("hora: "+ kpis[0] );
    }}

2 Respostas

A

Acredito que isso possa te ajudar :wink:

Satangozo

Classe: OrdenaPorData.Java

public class OrdenaPorData implements Comparator
<Objeto>{

@Override
    public int compare(Objeto o1, Objeto o2) {
        
        if (o1 == null || o2 == null){
            return -1;
        }else{
            return o1.getObjetoData().compareTo(o2.getObjetoData());
        }
}

e depois de preencher a lista faça:

Collections.sort(lista, new OrdenaPorData());

Criado 16 de dezembro de 2015
Ultima resposta 16 de dez. de 2015
Respostas 2
Participantes 3