Como verificar os maiores elementos em um List?

Boa noite, tenho que verificar o maior elemento em um list fiz deste jeito!

for (Double valor : arrayFi) {//forma de procurar o maior elemento em um arraylist
            if (valor > moda) {
                moda = valor;
            }
        }
        int idx = arrayFi.indexOf(moda);

Minha duvida entra aqui se em um list eu tenho mais de um elemento com o maior valor, como fazer? Ai criei este jeito, só que estou achando que ficou sem forma JAVA de programar
Como seria a forma correta?
Obrigado

for (Double double1 : Fi) {
            if (aux < double1) {
                aux = double1;
            }
        }
        for (int i = 0; i < Fi.size(); i++) {
            if(Fi.get(i) == aux){
                this.moda.add(xi.get(i));
            }
        }
    }

Do jeito que vc flw ficou confuso , porem se vc ja tem o maior valor para que iria querer outro maior valor , ou vc quer uma lista em ordem decrescente de for utilize Comparable .

kra ta meio estranho isso… vc colocou no topico q quer recuperar os maiores valores de um list… mas no seu codigo vc recupera somente o maior…

Boa tarde desculpa a demora para responder, este método descrito acima só retorna o índices do maior elemento em um List,
só que o problema esta ai, este list guarda dados estatísticos(moda) então necessito saber onde aparece o maior elemento e índices se houver repetição.
vlw

A posição que estes teus objetos se encontram na Lista é realmente importante? Se não for, era só ordenar em ordem decrescente e pegar os primeiros valores.

Se precisar mesmo, tente isto:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Procura {

	public static void main(String[] args) {
		
		Double[] array = {2d, 2d, 3d, 4d, 5d, 6d, 6d, 5d, 5d, 4d, 6d, 3d, 3d, 3d,};
				
		System.out.println(new Procura().maioresElementos(Arrays.asList(array)));

	}

	Indices maioresElementos(List<Double> lista) {
		Indices resultado = null;
		double moda = Double.MIN_VALUE;

		for (int i = 0; i < lista.size(); i++) {

			double valor = lista.get(i);

			if (valor >= moda) {
				if (valor > moda) {
					moda = valor;
					resultado = new Indices(valor);
				}

				resultado.add(i);
			}
		}
		return resultado;
	}

}

class Indices {
	double elemento;
	List<Integer> indices = new ArrayList<Integer>();

	public Indices(double valor) {
		this.elemento = valor;
	}
	
	public void add(int indice)
	{
		indices.add(indice);
	}
	
	@Override
	public String toString() {

		return "Moda: " + elemento + " - índices: " + indices;
	}
}

[quote=MarcioCasteloBranco]Boa tarde desculpa a demora para responder, este método descrito acima só retorna o índices do maior elemento em um List,
só que o problema esta ai, este list guarda dados estatísticos(moda) então necessito saber onde aparece o maior elemento e índices se houver repetição.
vlw[/quote]

Tem algum problema conceptual ai. A moda é o valor que mais se repete , não o maior valor

Na amostra 1 2 3 4 5 6 7 8 7 6 6 6 5 5 5 1 a moda é 6. mas o maior valor é 8.
O maior valor é o máximo, não a moda.

Vamos la este listFi guarda minha Fi(freqüência) então o maior elemento sera a moda ou as modas (para uma distribuição simples basta verificar o maior elemento no listFi) , depois relaciono os índices do listFi com listclasse para utilizar a formula para achar a moda em classe.
Belezinha Camaradas