Comparar um ArrayList (Java)

Olá, eu tenho um ArrayList com vários jogadores que podem variar de 3 à 7. Eu gostaria de comparar um valor de um membro do array com todos os outros, porém fazendo um for eu não consigo fazer essa comparação com todos eles, como eu poderia fazer essa comparação?

Se eu entendi direito seu problema, sua lista vai ter alguns membro e você quer comparar cada um deles com os demais, isso da mesma lista. Então você pode utilizar 2 fors.

for(Membro membroAtual : lista)
{
    for(Membro membroAComparar : lista)
    {
        if(membroAtual.get... == membroAComparar.get....)
            ....
    }
}

Você pode melhorar esse código, pois nesse exemplo, você vai estar comparando um membro com ele mesmo, algumas vezes e ate mesmo comparando membros que você já comparou.

na verdade eu preciso comparar os valores dos membros, por exemplo, valorTotal do membro1 com os membros 2, 3, 4 5, 6, 7 e assim sucessivamente, pois eu vou precisar fazer alteração nos valores dentro dessa lista caso eles sejam iguais.

Mas você não pode fazer algo como:

Membro a;
Membro b;
for( int i = 0; i < lista_membros.size(); i++ )
{
    a = lista_membros.get(i); // aqui estou pegando o membro 1
    // por exemplo, depois mudo para o 2 e assim sucessivamente.  
    for( int j = i+1; j < lista_membros.size(); j++ )
    {
        b = lista_membros.get(j); // aqui vou estar pegando membro por membro para 
        // comparar com a.
        if( a.getValorTotal() == b.getValorTotal())
            ....
    }
}

Cara então, a princípio está funcionando, só que eu estou com um problema que é o seguinte: eu preciso transformar esse valor total em um valor com 3 casas decimais no máximo, só que tem horas que ele quebra e vira coisas como:
31.172000000000004 e isso não pode acontecer de jeito nenhum, pois o valor nem vai pro banco de dados.
Segue o código:

public static void desempatador(ArrayList<Jogador> jogador){
		ArrayList<Jogador> auxiliar = new ArrayList<Jogador>();
		Jogo.jogadores.get(6).setTotalPontos(Jogo.jogadores.get(2).getTotalPontos()); //aqui eu coloco pros valores serem iguais de propósito pra testar se está funcionando.
		Jogador a;
		Jogador b;
		for( int i = 0; i < Jogo.jogadores.size(); i++ ) {
		    a = Jogo.jogadores.get(i); // aqui estou pegando o membro 1
		    // por exemplo, depois mudo para o 2 e assim sucessivamente.  
		    for( int j = i+1; j < Jogo.jogadores.size(); j++ ){
		        b = Jogo.jogadores.get(j); // aqui vou estar pegando membro por membro para comparar com a.
		        do{
		        if( a.getTotalPontos() == b.getTotalPontos()){
		        	Random gerador = new Random();
	    			double dado = gerador.nextInt(6) + 1;
	    			dado = dado/1000 %.3f;
	    			double dado2 = gerador.nextInt(6) + 1;
	    			dado2 = dado2/1000 %.3f;
	    			Jogo.jogadores.get(i).setTotalPontos(Jogo.jogadores.get(i).getTotalPontos() + dado %.3f);
	    			Jogo.jogadores.get(j).setTotalPontos(Jogo.jogadores.get(j).getTotalPontos() + dado2 %.3f);
	    			a.setTotalPontos(a.getTotalPontos() + dado %.3f);
	    			b.setTotalPontos(b.getTotalPontos() + dado2 %.3f);
		        }
		        }while(a.getTotalPontos() == b.getTotalPontos());
		    }
		}
	}