Comparando Resposta com ArrayList

Estou tentando fazer um trabalho para faculdade, onde o professor pediu para ser feito um “jogo” tipo show do milhao.
Utilizei um ArrayList para as perguntas, e um ArrayList para as respostas.

O “jogador” devera inserir a resposta apos cada pergunta, porem toda vez que tento comprar a resposta dada pelo usuario com o array ele me retorna falso.

public static void main(String[] args) {
    Scanner ler = new Scanner(System.in);
    // Inserir as variaveis
    int pontos =0;
    int contador = 0;
    String op;
    String pergunta[];
    String correta[];
    //Cria lista das perguntas
    ArrayList<String[]> resposta = new ArrayList<>();
    ArrayList<String[]> quiz = new ArrayList<>();  
    pergunta = new String[6];
    pergunta[0] = "Qual o ano da abolição da escravatura?\n";//Enunciado (C)
    pergunta[1] = "A - 1789"; //alternativa 1                               
    pergunta[2] = "B - 1898";// alternativa 2
    pergunta[3] = "C - 1888"; // alternativa 3 (correta)
    pergunta[4] = "D - 1699"; // alternativa 4
    pergunta[5] = "E - 1886"; // Alternativa 5
    //pergunta[6] = "C - 1888";
    quiz.add(pergunta);
    correta = new String[1];
    correta[0] = "C"; // resposta
    resposta.add(correta);
    
    pergunta = new String[6];
    pergunta[0] = " Quando foi a independência do Brasil?\n"; // (A)
    pergunta[1] = "A - 7 de setembro de 1822"; // alternativas↓
    pergunta[2] = "B - 4 de agosto de 1713";
    pergunta[3] = "C - 20 de maio de 1650";
    pergunta[4] = "D - 6 de agosto de 1824";
    pergunta[5] = "E - 21 de julho de 1523";
    //pergunta[6] = "A - 7 de setembro de 1822"; //resposta
    quiz.add(pergunta);
    correta = new String[1];
    correta[0] = "A";
    resposta.add(correta);
   
   
   
      for(int i = 0; i < 2; i++) {   
        
            System.out.println(Arrays.toString(quiz.get(i)));
            op = ler.nextLine();
            if(op.equals(resposta.get(i))) { 
                System.out.println("Resposta Correta");
                
                pontos = pontos + 5;
            }else{
                System.out.println("Resposta Incorreta");
               
                pontos = pontos - 5;
                System.out.println("resposta correta: "+ Arrays.toString(resposta.get(i))); // print da resposta correta
                System.out.println("Sua resposta foi:"+(op)); // print da resposta
            }
        
      }  

              
      
    }

Porem o if me retorna falso todas as vezes, como eu arrumo isso?

OBS1 = Apenas 1 class
OBS2 = Sao um total de 15 perguntas.

Se alguem puder me dar alguma dica agradeço

A tua lista de respostas não contém Strings mas sim Arrays de Strings.

if(op.equals(resposta.get(i))) { 

Aqui estás a comparar uma String com um String[] que será sempre diferente.

Porque é que crias um array de tamanho 1 para as respostas? Não será mais simples assim?

 ArrayList<String> resposta = new ArrayList<>();
 (...)
 resposta.add("C");
 (...)
 resposta.add("A");

Desta forma funciona

1 curtida

Obrigado! deu certo.