Como funciona esse array?

Não estou consiguindo compreender esse programa:


//StudentPoll.java
//Programa de análise de enquete
public class StudentPoll {
	
	public static void main(String args[])
	{
		
		//array de resposta da pesquisa
		int responses[] = {1,2,6,4,8,5,9,7,8,10,1,6,3,8,6,
				          10,3,8,2,7,6,5,7,6,8,6,7,5,6,6,5,6,7,5,6,
				          4,8,6,8,10};
		
		int frequency[] = new int[11]; //array de contadores de frequencia
		//para cada resposta, seleciona o elemento de respostas e utiliza esse valor
		//como índice de frequência para determinar o elemento a incrementar
		for(int resposta=0;resposta < responses.length;resposta++)
			++frequency[responses[resposta]];
		
		System.out.printf("%s%10s\n", "Rating", "Frequency");
		
		//gera saída do valor de cada elemento do array
		for(int rating=1;rating < frequency.length;rating++)
			System.out.printf("%6d%10d\n", rating,frequency[rating]);
		
		
	}

}

é o seguinte:

Responses contem todas as respostas dadas (1,2,6,4…)

Frequency é um arrat de 11 posições (isso pq quem respondia escolhia uma opcao de 1 a 11, ou 0 a 10 tanto faz)

Dai o programa faz um loop em todas as respostas e pra cada um delas vai na posicao correspondente no array frequency (freq[1], freq[2], freq[6], freq[4], …) e soma 1

E depois joga a quantidade de vx q cada uma das respostas foi selecionada.

Acho que a parte q vc nao entendeu foi o loop q conta.

responde [resposta] retorna a resposta dada, e com isso ele já vai na posicao certa do array frequency e soma 1j

++frequency [response[resposta];

Olá bruno,
Qual a diferença de

 int responses[] = {1,2,6,4,8,5,9,7,8,10,1,6,3,8,6,  
                          10,3,8,2,7,6,5,7,6,8,6,7,5,6,6,5,6,7,5,6,  
                          4,8,6,8,10};  

para:

int frequency[] = new int[11];

E o array, para que serve exatamente ? Guardar várias alocações ? Por exemplo, enquanto o int number1 = 100 guarda apenas um número inteiro, o array guarda vários ?

Um grande abraço!

[quote] int responses[] = {1,2,6,4,8,5,9,7,8,10,1,6,3,8,6,
10,3,8,2,7,6,5,7,6,8,6,7,5,6,6,5,6,7,5,6,
4,8,6,8,10};
[/quote]
Esse vetor(array) já foi criado com um tamanho e valores específicos, assim não podendo incrementar nem um valor a mais.
A única possibilidade é sobrescrever um valor, lembrando que o primeiro índice é 0.

Aqui foi criado um vetor de 11 posições sem valores definidos.

Respondendo: O vetor é sim utilizado para preencher diversas alocações em uma determinada variável.