Comparar Valor ArrayList

Amigos,

Criei um ArrayList que recebe vários números de lote, cada número de lote pode ter um ou mais registros

eu preciso dentro de um loop pegar aquele número de lote atual e comparar com o próximo registro e verificar se e o mesmo lote,

se o próximo registro for o mesmo número de lote seto um flag = 0(Zero), se o número de lote for diferente seto flag = 1,

e a cada repetição de um registro com o mesmo lote volto o valor da flag = -1 isso até o ultimo lote do meu ArrayList,

fiz o código abaixo mas não esta dando certo, alguém pode ajudar ?

			Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
			for (Integer lote : lotes) {
			    Integer count = map.get(lote);  
			    if (count == null){
			       count = 0;
			       map.put(lote, count+1);
			    }else{
			    	map.put(lote, count+1);
			    }
				   
			    List<Integer> list = new ArrayList<Integer>(map.keySet());
			     for (int i = 0; i < list.size();) {
                               int flag = -1;
				      if (list.get(i).equals(lote)) {
				    	  System.out.println("Número do Item da Lista e [IGUAL] ao Númeto de Lote ");
                                            flag = 0;
				      }else{
				    	  System.out.println("Número do Item da Lista e [DIFERENTE] ao Númeto de Lote ");
                                          flag = 1;
				      }
				    }
				}

O que não está dando certo?

Não tem erro,

na verdade preciso saber a quantidade de vezes que o lote mudou de número do inicio até o fim da lista,

Esse sysout System.out.println(" Quantidade de vezes que mudou o numero do lote " + contador); esta me dizendo a quantidade de vezes que aquele lote se repetiu.

e não quantos lotes teve na lista

o que esta errado ?

			Map<Integer, Integer> map = new TreeMap<Integer, Integer>();  
			int contador = 0;
			int linhalote = -1;
			for (Integer lote : lotes) {
			    Integer count = map.get(lote);  
			    if (count == null){
			       count = 0;
			       map.put(lote, count+1);
			    }else{
			    	map.put(lote, count+1);
			    }
				   
			    List<Integer> list = new ArrayList<Integer>(map.keySet());
			    
			    for (int i = 0; i < list.size();) {
				      if (list.get(i).equals(lote)) {
				    	  linhalote = 0;
				    	  System.out.println("O lote: "+lote+ " Repetiu : " +  map.get(lote));
				    	  break;
				      }else{
				    	  linhalote = 1;
				    	  System.out.println("O item da lista e [DIFERENTE] outra lote " + lote);
				    	  contador ++;
				    	  break;
				      }
				    }
				}
			
			for (Integer lote : map.keySet()) {
			   System.out.printf("O lote %s se repetiu %s vezes.", lote, map.get(lote));
			   System.out.println(" lote " + lote);
			   System.out.println(" Quantidade de vezes que mudou o numero do lote " + contador);
			}

Só faltou incrementar o for. O seu está assim:for (int i = 0; i < list.size();) { Tem que ficar assim: for (int i = 0; i < list.size(); i++) {

eu tinha feito assim porém o eclipse diz que não estou usando o i++ ai ou eu removo e fica como esta
ou ele pedi para eu adicionar @SuppressWarnings("unused") em cima da linha onde tenho meu método que faz toda a lógica do que preciso