Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ALBUR en 10 Mayo 2012, 02:11 am



Título: DUDA ORDENAR.
Publicado por: ALBUR en 10 Mayo 2012, 02:11 am
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:
Código:
    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.
Código:
 .................................//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.


Título: Re: DUDA ORDENAR.
Publicado por: ny0x en 10 Mayo 2012, 03:25 am
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/


Título: Re: DUDA ORDENAR.
Publicado por: [Case] en 11 Mayo 2012, 18:48 pm
Personalmente yo prefiero la segunda opción que menciona @ny0x por que haci puede compara un Objeto de distintas formas.