Foros del Web » Programación para mayores de 30 ;) » Java »

Como ordenar un ArrayList de Objetos

Estas en el tema de Como ordenar un ArrayList de Objetos en el foro de Java en Foros del Web. Hola. Tengo un ArrayList rellenos con objetos de la clase Jugador, los cuales tienen un nombre y un color. Una vez que tengo rellena la ...
  #1 (permalink)  
Antiguo 19/05/2011, 15:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 8
Antigüedad: 12 años, 11 meses
Puntos: 0
Como ordenar un ArrayList de Objetos

Hola.

Tengo un ArrayList rellenos con objetos de la clase Jugador, los cuales tienen un nombre y un color. Una vez que tengo rellena la lista de los jugadores quiero ordenarla alfabéticamente según el atributo nombre. Después de mucho buscar he llegado a la conclusión de que puedo hacerlo con Collection.sort(lista) pero el problema es que creo que no lo uso bien ya que me da error.

Mi código para la clase que gestiona a los jugadores es:

import java.util.ArrayList;
import java.util.Collections;

public class GestionJugadores implements Comparable{
private ArrayList <Jugador> listaJugadores;
private int siguiente_jugador = 0;
private int numero_jugadores = 0;
private String nombre;
private String color;

public GestionJugadores(int numeroJugadores){
this.numero_jugadores = numeroJugadores;
listaJugadores = new ArrayList <Jugador>(numeroJugadores);
}


public String getNombre(){
return nombre;
}

public String getColor(){
return color;
}

public boolean anadirJugador(Jugador jugador){
return listaJugadores.add(jugador);
}

public boolean eliminarJugador(Jugador jugador){
return listaJugadores.remove(jugador);
}

public boolean comprobarNombreJugador(Jugador jugador){
............
}

return existe;
}

public boolean comprobarColorJugador(Jugador jugador){
...........
}

return existe;
}

public void obtenerJugadores (int numeroJugadores){
ObtenerDatos datos = new ObtenerDatos ();
String nombre = null;
String color = null;

for (siguiente_jugador=0; siguiente_jugador<numeroJugadores; siguiente_jugador++){
boolean otro= false;
do{
nombre = datos.obtenerNombreJugadores();
color = datos.obtenerColorJugadores();
Jugador jugador = new Jugador (nombre, color);

if(!comprobarNombreJugador(jugador)&&!comprobarCol orJugador(jugador)){
anadirJugador(jugador);
otro=false;
}else{
otro=true;
}
}while(otro);
}
**Aquí uso la sentencia: Collections.sort(listaJugadores); **
** El error que me da es:
Cannot find symbol
symbol: method sort(java.util.ArrayList<monopoly.Jugador>
location: class java.util.Collections **


}

public int compareTo (Object o){
Jugador otroJugador = (Jugador) o;
return nombre.compareTo(otroJugador.getNombre());
}
}

La verdad es que no sé si lo estoy usando bien, también la he usado en el Main pero me da el mismo error. Espero que alguien pueda echarme una mano. Muchas gracias.
  #2 (permalink)  
Antiguo 19/05/2011, 16:26
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Como ordenar un ArrayList de Objetos

La interfaz Comparable la tiene que heredar la clase Jugador no la clase GestionJugadores, porque es sobre la que se va a hacer la comparación.

El método compareTo tendrás que ponerlo también dentro de la clase Jugador.
  #3 (permalink)  
Antiguo 22/05/2011, 05:05
 
Fecha de Ingreso: mayo-2011
Mensajes: 8
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Como ordenar un ArrayList de Objetos

Muchas gracias! La verdad es que es lógico pero llevaba ya tanto rato atrancada con eso que no me daba cuenta de lo que hacía mal.

Etiquetas: arraylist, objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:42.