Foro de elhacker.net

Programación => Java => Mensaje iniciado por: jscrip en 7 Julio 2013, 11:14 am



Título: [Ayuda] Ordenar los elementos de un ArrayList
Publicado por: jscrip en 7 Julio 2013, 11:14 am
Hola, quiero ordenar los elementos de un ArrayList en forma ascendente o descendente, pero me sale error. Los elementos del ArrayList son String e Int:
public class Consulta {
  
    public static void ingreso(ArrayList registros){
        int op2, op1;
        String id = Ingreso.getString(": ");
        String name = Ingreso.getString("Nombre: ");
        int cel = Ingreso.getInt("Cell: ");
        String descripcion = Ingreso.getString("Descripcion: ");
        Empresa p = new Empresa(id, name, cell, descripcion);
        p.imprimirInfoEmpresa();
        registros.add(p);
    }
    
    public static void consulta(ArrayList registros){
       ||||||||||||||||||
            case 1:
                String cedula = Ingreso.getString("Ingrese el id:");
                for(int i=0; i<registros.size();i++){
                    Empresa p = (Empresa)registros.get(i);
                        Collections.sort(registros); //Me sale error Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - cannot find symbol
  symbol:   variable cel

                        
                      
}
||||||||||||

Gracias de antemano por la ayuda.


Título: Re: [Ayuda] Ordenar los elementos de un ArrayList
Publicado por: ~ Yoya ~ en 8 Julio 2013, 03:12 am
No puedes organizar datos que no son mutuamente comparable, osea no puedes ordenar objetos de diferente tipos.
Lo que puedes hacer es pasar los Integer a String, así tendrás solo datos del mismo tipo, en este caso String.

Luego si quieres puedes utilizar el metodo reverse de la clase Collections, para tener los datos descendente. La otra opción es utilizar interfaz Comparactor.

Saludos.


Título: Re: [Ayuda] Ordenar los elementos de un ArrayList
Publicado por: jscrip en 8 Julio 2013, 04:01 am
No puedes organizar datos que no son mutuamente comparable, osea no puedes ordenar objetos de diferente tipos.
Lo que puedes hacer es pasar los Integer a String, así tendrás solo datos del mismo tipo, en este caso String.

Luego si quieres puedes utilizar el metodo reverse de la clase Collections, para tener los datos descendente. La otra opción es utilizar interfaz Comparactor.

Saludos.

Gracias por responder, lo pasé a String todo y me sale este error: Exception in thread "main" java.lang.ClassCastException: Project_EMPRESA.Empresa cannot be cast to java.lang.Comparable
   at java.util.Collections.sort(Collections.java:159)
   at Project_EMPRESA.Opcion.ingreso(Opcion.java:53)
   at Project_EMPRESA.Principal.main(Principal.java:38)
Java Result: 1


Título: Re: [Ayuda] Ordenar los elementos de un ArrayList
Publicado por: ~ Yoya ~ en 8 Julio 2013, 22:37 pm
Si pasaste todo a String y lo ordenas utilizando Collections.sort($ArrayListDeString) entonce no tiene porque dar error.

Habras hecho algo mal o tenias algo mal, te recomiendo que utilices el Debugger para que sepas en donde y que momento el programa explota.


Título: Re: [Ayuda] Ordenar los elementos de un ArrayList
Publicado por: jscrip en 9 Julio 2013, 07:42 am
Si pasaste todo a String y lo ordenas utilizando Collections.sort($ArrayListDeString) entonce no tiene porque dar error.

Habras hecho algo mal o tenias algo mal, te recomiendo que utilices el Debugger para que sepas en donde y que momento el programa explota.
Tenía el ArrayList object, tuve que especificar que es string. Gracias por la ayuda.