Como armazenar as entradas do usuário em um loop?

Preciso fazer o programa repetir quantas enquanto o contador != pontos. porém preciso armazenar cada entrada que o usuário fizer enquanto for diferente, já fiz com while mas não consegui armazenar as entradas, alguém sabe como posso fazer?

if (resp49.equals("s")) {
  System.out.println("Digite quantos pontos o cliente possui. ");
  Scanner entrada1 = new Scanner(System.in);
  
  pontos = entrada1.nextInt();
  
  while (contador != pontos) {
    System.out.println("Digite as composição dos pontos, 3,4,5 ou 7 são permitidos ");
    System.out.println("Pontos  em análise " + pontos + "  Somátorio dos pontos inseridos  " + contador);
    Scanner entrada4 = new Scanner(System.in);
    pontoinserido = entrada4.nextInt();
    
    while (pontoinserido != 3 && pontoinserido != 4 && pontoinserido != 5 && pontoinserido != 7) {
      System.out.println("Resposta incorreta. Digite as composição dos pontos, 3,4,5 ou 7 são permitidos.");
      pontoinserido = entrada4.nextInt();
    }
    
    contador = pontoinserido + contador;
    
    if (contador > pontos) {
      System.out.println("A somatoria de pontos ultrapassou os pontos, favor refazer a operação");
      return;
    }
  }

Vc está usando 2 scanners no código e apenas 1 bastaria.


Vc pode trocar esse while:

while (pontoinserido != 3 && pontoinserido != 4 && pontoinserido != 5 && pontoinserido != 7) {
  System.out.println("Resposta incorreta. Digite as composição dos pontos, 3,4,5 ou 7 são permitidos.");
  pontoinserido = entrada4.nextInt();
}

por:

while (pontoinserido != 3 && pontoinserido != 4 && pontoinserido != 5 && pontoinserido != 7) {
  System.out.println("Resposta incorreta.");
  continue;
}

Agora não entendi muito bem a parte de armazenar cada entrada do usuário qdo for diferente.

Oi Lucas, então…
Eu preciso verificar quantas vezes ele digitou “7” para que o contador e pontoinserido seja igual.
Exemplo, se o cliente digitar que possui 20 pontos, ele precisa inserir a composição desses pontos, porém para a composição dos pontos ele só pode digitar 3,4,5ou7. Caso ele digite primeiro 3 depois 7 depois 7 depois 3, a pontoinserido vai ficar como o cliente tivesse digitado somente o 3 quando eu faço as contas.

codigonovo = Integer.toString(pontoinserido);
List lista = new ArrayList();
lista.add(codigonovo);
lista.add(codigo1);
int occurrences;
occurrences = Collections.frequency(lista, “7”);