Metodo sort da classe Comparable erro

Boa Noite pessoal to fazendo um exercicio só ta dando erro no método sort.
Tenho um vetor de objects e quero ordernar o mesmo mais tá dando erro
classe jogador cannot be cast to java.lang.Comparable.
Só não entendo o motivo do erro.no caso eu tenho um objeto do tipo jogador dentro de um vetor de objetor do tipo time,tem algum problema para usar o sort?
to colocando um pedaço das fonte,caso alguém puder ajudar a tirar a minha duvida,ou se eu to fazendo alguma cagada.
deste já obrigadoo.

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

public class Time implements Comparable {
	ArrayList time = new ArrayList();

	String nome;

	private String cidadeSede;

	private String nomeClube;

	public void adiciona(Jogador jogador) {

		time.add(jogador);

	}

Time(String nomeClube, String cidadeSede) {
		this.nomeClube = nomeClube;
		this.cidadeSede = cidadeSede;

	}
	void ordenar() {
		Jogador[] t = new Jogador[2];

		for (int i = 0; i < time.size(); i++) {
	
			t[i] = (Jogador) time.get(i);
			
		}
		
	
		Arrays.sort(t);
	}
	
	

	public int compareTo(Object o) {
		Jogador c = (Jogador) o;
		
		return nome.compareTo(c.getNome());
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

}

import java.util.Arrays;

public class Jogador {
	private String nome;

	public boolean titular;

	private String posição;

	private double salario;

	private double novoSalario;

	public double getSalario() {
		return salario;
	}

	public void setSalario(double salario) {
		this.salario = salario;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getPosição() {
		return posição;
	}

	public void setPosição(String posição) {
		this.posição = posição;
	}

	public boolean isTitular() {
		return titular;
	}

	public void setTitular(boolean titular) {
		this.titular = titular;
	}



}

Jovem, tenho quase certeza que ao implementar a interface Comparable se faz necessário a sobrescrita do método compareTo

veja: http://www.guj.com.br/posts/list/49300.java

Opa agora consegui só tava colocando o metedo compareTo na classe errada.
só queria saber como ordenar por ordem descrecente por nome,ou alguma string.Alguém sabe como posso fazer para ordernar por decrescente?

public int compareTo(Object o) {

		Jogador c = (Jogador) o;


	return nome.compareTo(c.getNome());  
	}

axo que não tem como ordenar por ordem decrescente uma String pelo sort né?
vou fazer na mão mesmo.

Tem sim, vc vai ter que implementar um Comparator.
Já posto um exemplo.

Esse método ordena uma String de forma inversa.

[code]public static String inverseSort( String str ) {

List<String> lista = new ArrayList<String>();

for ( char c : str.toCharArray() )
    lista.add( String.valueOf( c ) );

String[] sa = lista.toArray(new String[0]);

Arrays.sort( sa, new Comparator<String>() {
    public int compare(String o1, String o2) {
        return -o1.compareTo(o2);
    }
});

StringBuilder sb = new StringBuilder();
for ( String s : sa )
    sb.append( s );

return sb.toString();

}[/code]

[]'s

Desculpa, não era bem isso q vc queria né. Minha cabeça num ta boa hj :smiley:

Mas a idéia para ordenar seus objetos do tipo Jogador é a mesma.

Crie um array de jogadores, pode ser a partir de uma lista como fiz no exemplo.
Implemente o compareTo dele. Onde está usando String no meu exemplo é só vc trocar por Jogador e fazer alguns ajustes…

Até mais!