ArrayList

//como imprimir o maior,menor e meio em um arrayList?

public class MaxVetor {

	public static void main(String[] args) {
		int maior = 0;
		int menor = 0;
		
		int[] l = { 7, 5, 4, 5, 10, 12, 6, 1 };
        int i;
		
		for (i = 0; i < 7; i++) {
			
			if (l[i] > maior) {
				maior = l[i];
			}

			if ((l[i] < maior)) {
				menor = l[i];
			}
					
		}
		
		System.out.println("O maior numero é o : "+ maior +
	    		           "\nO menor numero é o : "+ menor );
		
		
	}

}

Olá, primeiramente isto que você está fazendo é um array e não array list. Arraylist é uma coleção com índice . Ex:

ArrayList filmes = new ArrayList ;


Bem quanto ao seu algoritmo contém um pequeno erro. e se todos os números forem menor que zero ele vai dar como menor o próprio zero que aliás pode não estar na coleção do array. Outro erro é que você oclocou duas vezes o maior pra avaliação .
No que eu fiz abaixo o menor e maior são os primeiros números do índice zero do array. Ficou da seguinte forma:

[color=blue]

public class MaxVetor {

public static void main(String[] args) {  
    int maior = 0;  
    int menor = 0;  
      
    int[] l = { 7, 5, 4, 5, 10, 12, 6, 1 };  
    int i = 0 ;  
      
    for (int j : l) {
        if (i==0){
            maior = l[i];
            menor = l[i];
        }
        if (l[i]> maior)
            maior = l[i]; 
        else if (l[i]<menor )
            menor = l[i];
        i++;
    }

      
    System.out.println("O maior numero é o : "+ maior +  
                       "\nO menor numero é o : "+ menor );  
      
      
}  

}

[/color]

Dá uma testada qq coisa me avisa.