DUDA ORDENAR.

Iniciado por ALBUR, 10 Mayo 2012, 02:11 AM

0 Miembros y 1 Visitante están viendo este tema.

ALBUR

Hola, buenas noches a todos.
Aquí estoy otra vez (aprenderé algo!!!).

Bien, pues tengo dos clase, Nota y Libreta (ArrayList). donde en libreta ademas de añadir las notas me las ordena. Lo que ordena son fechas, bueno son enteros que yo he llamado dia, mes y año.
En mi clase Nota tengo mis get y set de int dia, int mes, int año y en mi libreta entre otros metodos tengo:

    public void agregar_nota(Nota n){
        //comprueba si hay dos titulos iguales.
        for(Nota nt : notas){
            if(n.get_titulo().equals(nt.get_titulo())){
                System.out.println("ESTE TITULO YA EXISTE");
            }
            else{
                notas.add(n);
            }       
    .................................//continuo con el metodo.


En este mismo método, después de añadir, lo que hago es comparar los años, luego los meses y luego los dias.

.................................//continuo con el metodo.
           int aux = 0;
            for(int pos = 0; pos < notas.size(); pos++){
                if(n.get_anio() < nt.get_anio()){
                    aux = n[pos];*****


y aqui ya no se seguir, bueno no se si podría se así, o utilizar algún metodo de Array como sort....

Alguien me puede echar una mano.

Muchas gracias.

ny0x

para ordenar un ArrayList puedes usar Collections.sort y le pasas como parametro tu ArrayList, pero para eso tu clase Nota debe implementar la interfaz Comparable<T> y sobreescribir el metodo compareTo con tu criterio de comparacion.

El otro metodo es pasar como segundo parametro a Collections.sort una clase que implemente la interfaz Comparator<T>

Algunos ejemplos de lo que te menciono http://www.vogella.com/blog/2009/08/04/collections-sort-java/

[Case]

Personalmente yo prefiero la segunda opción que menciona @ny0x por que haci puede compara un Objeto de distintas formas.