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.
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.
Cita de: ~ 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.
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
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.
Cita de: ~ 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.
Tenía el ArrayList object, tuve que especificar que es string. Gracias por la ayuda.