Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - usuHelp

Páginas: [1]
1
Hola, mi problema viene al intentar ordenar un ArrayList de jugadores por sus ids, el problema viene que al ser el id con números me pilla solo el primero,al ser letras lo ordena bien al ser String. Hay alguna solución para que pueda hacer ambas formas? Se pase letras o números, siendo id un String.Gracias! Paso algunos ejemplos:

Código: [Seleccionar]
ArrayList <Jugador> jugadores = new ArrayList<Jugador>();
jugadores.add(new Jugador("j3","pepe"));
jugadores.add(new Jugador("j20","juan"));
jugadores.add(new Jugador("j1","maria"));
jugadores.add(new Jugador("j10","maria"));
Collections.sort(jugadores);
                for(Jugador jug: jugadores) jug.mostrarDatos();


Sale por pantalla:

ID: j1 Nombre: maria
ID: j10 Nombre: maria
ID: j20 Nombre: juan
ID: j3 Nombre: pepe


Código: [Seleccionar]
ArrayList <Jugador> jugadores = new ArrayList<Jugador>();
jugadores.add(new Jugador("jA","pepe"));
jugadores.add(new Jugador("jD","juan"));
jugadores.add(new Jugador("jC","maria"));
jugadores.add(new Jugador("jB","maria"));
Collections.sort(jugadores);
for(Jugador jug: jugadores) jug.mostrarDatos();


ID: jA Nombre: pepe
ID: jB Nombre: maria
ID: jC Nombre: maria
ID: jD Nombre: juan


Collections.sort llama a:

Código: [Seleccionar]
public int compareTo(Jugador j) { //Ordena por ID
// TODO Auto-generated method stub
return this.id.compareTo(j.id);
}

2
Muchas gracias! Ahora me surge otra duda,hay alguna manera de comparar constantes declaradas en una interfaz? Por ejemplo, si tengo subclases con la super como jugador, y en esas subclases tengo las variables declaradas de la interfaz,cada constante calculada de una distinta manera en cada subclase(dependen de los distintos métodos introducidos en cada subclase).Teniendo un ArrayList<Jugador> lleno de los distintos tipos(de las subclases) y los quiero ordenar  según una caracteristica que tienen en común,la constante extendida de la interfaz,hay alguna manera de hacer eso? Ya que id o nombre no hay ningún problema pero con las compartidas de la interfaz sí,entiendo que son conceptos distintos pero no soy capaz de llegar a ninguna solución...Gracias!

3
Hola, una consulta sobre Java.

Teniendo esta clase Jugador:
Código: [Seleccionar]
public class Jugador implements Comparable<Jugador>{
private String nombre, id;

public Jugador(){
this( "", ""); // llama al constructor con dos argumentos
}
public Jugador(String id,String nombre) {
this.id= id;
this .nombre=nombre;
}
public String getNombre(){
return nombre;
}
public void setNombre (String nombre) {
this.nombre = nombre;
}
public void setId(String id ) {
this.id=id;
}

public String getId( ) {
return id;
}
public void mostrar Datos( ) {
System.out.println( "ID: "+id+"\nNombre: "+nombre);
}
@Override
public int compareTo(Jugador o) {
// TOTO Auto-generated method stub
return 0;
}

En el main intento introducir datos de jugadores, introducirlos en un TreeSet e imprimirlos,el problema es que solo introduce el primero. Por ejemplo:

Código: [Seleccionar]
TreeSet <Jugador> listaJugadores = new TreeSet<Jugador>();
Jugador j1 = new Jugador("jA","pepe");
Jugador j2 = new Jugador("jB","juan");
Jugador j3 = new Jugador("jC","maria");
listaJugadores.add(j1);
listaJugadores.add(j2);
listaJugadores.add(j3);

for(Jugador j: listaJugadores) {
j.mostrarDatos();
}

Solo muestra jA Pepe.Gracias por adelantado!

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".