Como localizar o indice do maior elemento de um arraylist<Double>?

Boa tarde , tenho a seguinte duvida tem uma forma correta de localizar o índice do maior elemento em um arraylist , conseguí fazendo a comparação de cada elemento e isolando o índice do maior, só que ficou muito estruturado como estou aprendendo, gostaria da ajuda dos Senhores!
Obrigado !

Tem como você criar um Comparator, ordenar a lista, e pegar o elemento 0 da lista

[code] public static void main(String[] args) {
List a = new ArrayList();

	a.add(5.0);
	a.add(4.0);
	a.add(10.0);
	
	Collections.sort(a, new Comparator<Double>(){

		@Override
		public int compare(Double o1, Double o2) {

			return o2.compareTo(o1);
		}});
	
	System.out.println(a.get(0));
}[/code]

Você tem que passar o List e ver qual o maior valor.
Algo assim:

Double maiorValor = 0;
List<Double> lista = new ArrayList<Double>();

lista.add(10);
lista.add(5);
lista.add(30);
lista.add(20);

for(Double valor : lista) {  
      if(valor > maiorValor) {
            maiorValor = valor;
      }
}

[]´s

Daniel

[quote=MarcioCasteloBranco]Boa tarde , tenho a seguinte duvida tem uma forma correta de localizar o índice do maior elemento em um arraylist , conseguí fazendo a comparação de cada elemento e isolando o índice do maior, só que ficou muito estruturado como estou aprendendo, gostaria da ajuda dos Senhores!
Obrigado ![/quote]

Uai, você está certo - acho que você não precisa “mexer no seu código”.
Não há uma “maneira orientada a objeto” de fazer o que você quer.

Valeu amigos , vocês me ajudaram muito , Thiago você me ensinou como usar a interface collections sobrescrever o compare , tinha muita duvida nisso, contudo a maneira do yorgan para este caso e melhor porque eu não posso arrumar o arraylist, mas desde já agradeço a vocês pela aula, abaixo vai o que eu fiz tenho que localizar o índice do maior para extrair os dados de uma jtable!

double moda = 0;
        for (Double valor : arrayFi) {
            if(valor > moda){
                moda = valor;
            }
            int idx = arrayFi.indexOf(moda);
        }

Resolvido!!!
Valeu!!!

Só um porém, você não precisa verificar o índice toda vez

[code]
double moda = 0;
for (Double valor : arrayFi) {
if(valor > moda){
moda = valor;
}

     }  

int idx = arrayFi.indexOf(moda); [/code]

aproveitando mais a api:

int index = list.indexOf(Collections.max(list));