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 
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 