Pegar o índice em um array de objetos

buenas amigos, eu tenho um array de objetos do tipo clube:

Clube times[] = new Clube[20];

em determinada parte do código, depois de ordenar o array por número de pontos, eu preciso exibir a clasificação final e em cima da posição final, devo mostrar uma mensagem, que varia de acordo com essa posição, pois bem, eu preciso do índice desse objeto no array +1, certo ? só que não sei como pegar esse valor. Se alguem souber posta aí =P

Olha cara tu ta falando em uma tabela de classificação certo? se tu ja ordenou o teu array tu usa isso:
int count = 0;

[code]for(int i = 0; i < array.length; i++){

if(i < 4){
if(count == 0)
System.out.println(“Libertadores”);
count++;
System.out.println("Clube: “+array[i].getNome()+” pontos: "+array[i].getPontos());
}
else if(i > 4 && i < 16){
if(count == 1)
System.out.println(“Fora da Libertadores”);
count++;
System.out.println("Clube: “+array[i].getNome()+” pontos: "+array[i].getPontos());
}
else{
if(count == 2)
System.out.println(“Rebaixamento”);
System.out.println("Clube: “+array[i].getNome()+” pontos: "+array[i].getPontos());
}
[/code]

seria mais ou menos isso ? desculpa aê não posso testar o código agora, mais espero que esteja certo :wink:

kra, vc pode tentar isso, usando um ArrayList, e criar um classe para a Classificação que implemente a interface Comparator, fiz um exemplo aqui, vê se é isso que vc precisa.

public class Clube {

    private Integer pontos;
    private String nome;

    Clube(String nome, int pontos)
    {
        this.nome = nome;
        this.pontos = pontos;
    }

    public Integer getPontos() {
        return pontos;
    }

    public void setPontos(Integer pontos) {
        this.pontos = pontos;
    }

    public String getNome() {
        return nome;
    }

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

}
import java.util.*;

public class Classificacao implements Comparator<Clube> {

    public int compare(Clube c1, Clube c2)
    {
        return c2.getPontos().compareTo(c1.getPontos()); // aqui vc implementa o metodo compare(Object o1, Object o2) da interface Comparator
    }
}
import java.util.*;

public class TestClubes {

    public static void main(String[] args)
    {
        Clube a = new Clube("São Paulo", 20); // cria os clubes com seus respectivos pontos, (São Paulo em primeiro) kkkk
        Clube c = new Clube("Corinthians", 4);
        Clube b = new Clube("Palmeiras", 15);
        Clube d = new Clube("Santos", 18);


        List<Clube> clubes = new ArrayList<Clube>(); // cria um ArrayList para conter objetos Clubes
        clubes.add(a); // adiciona os clubes
        clubes.add(b);
        clubes.add(c);
        clubes.add(d);

        Classificacao classificao = new Classificacao(); 
        Collections.sort(clubes, classificao); // aqui vc ordena o ArrayList clubes, com a classificacao

        System.out.println("Classificação do Campeonato:");
        for(Clube clube : clubes)
        {
            System.out.println("Time: " + clube.getNome() + " Pontos: " + clube.getPontos());
        }
    }

}

Allan Barcelos
era ± isso, na verdade eu já tenho com fazer essa classificação, só que eu preciso da posição mesmo, na primeira classificação eu coloquei as posições dentro do System.out.println

[code]System.out.println("\n"+"------------------------------\n"+“Classificação Final:”);
for(int i=0; i<times.length; i++){
System.out.println((i+1)+". " + times[i].getNome());
}
System.out.println("\nPara mais informações digite a posição do time: ");

    int opc = read.nextInt();
    
    switch(opc){
        case 1:
            times[opc-1].exibeDados();
            times[opc-1].exibeEstatisticas();
            break;
        case 2:
            times[opc-1].exibeDados();
            times[opc-1].exibeEstatisticas();
            break;
            ...
        default:
            System.out.println("The End!");
            break;
            
    }

[/code]
só que na parte ali embaixo de exibir as estatísticas eu devo exibir “Classificação Final: x” por exemplo e daí eu não consigo pegar a posição dele no array. eu tentei adaptar o seu código pra pegar o cont como posição assim que encontrasse o time no array, mas ainda não tive suceso

billcaio
valeu cara, eu testei o seu método, só que ele é mais pra classificação mesmo, foi bom pra aprender, e eu preciso fazer na lógica mesmo, eu classifiquei com o algoritmo do bubble sort. =x


EDIT
era tão simples, pqp, pois bem, quando o usuario digita 1, ele obviamente quer ver as estatísticas do primeiro colocado, e assim sucessivamente … -.-
resolvi assim:

case 1: times[opc-1].cFinal = 1; times[opc-1].exibeDados(); times[opc-1].exibeEstatisticas(); break;

obrigado pela ajuda.

um método pra achar a posição ?

private int getPosicoes(String nomeTime){

int aux = 0;
boolean find = false;
for(int i = 0; i < array.length;i++){
if(array[i].equalsIgnoreCase(nomeTime)){
aux = i;
find = true;
}
}
if(find == true)
return aux;

else
return -1;

Ai tem um codigo de busca tambem, se tu conseguiu resolver o problema coloca [Resolvido] no titulo do tópico :wink: