java.lang.OutOfMemoryError

Olá, tudo bem?

Estou desenvolvendo um app para android que faz comparação entre 2 grupos de números. O problema é que, quando chamo o método de comparação ocorre uma exceção “java.lang.OutOfMemoryError”. Tentei mudar o tamanho do limite de memória do Java, mas não funcionou. Alguém sabe como resolver esse problema? Vou deixar o método de comparação em que está havendo o erro para que vocês possam analisar. Caso precisem de mais informações é só me avisar!

public void Comparando() {

    Servidor servidor = new Servidor();
    Aposta aposta = new Aposta();
    int A = 0;
    int B = 0;
    int C = 0;
    int D = 0;
    int E = 0;

    while(A < aposta.getApostaArray().size()) {

        while(B < servidor.getResultadoMatriz().length) {
            //Na linha abaixo ocorre a exceção!
            if (aposta.getApostaArray().get(A).equals(servidor.getResultadoMatriz()[B])) {
                acertos.add(aposta.getApostaArray().get(A));

                while (C < erros.size()) {
                    while(D < acertos.size()) {

                        if (erros.get(C).equals(acertos.get(D))) {
                            erros.remove(C);
                        }
                        D++;
                    }
                    D = 0;
                    C++;
                }
                D = 0;
                C = 0;
            }

            else {
                if (E == 0) {
                    erros.add(aposta.getApostaArray().get(A));
                    E++;

                }
                else {
                    erros.remove(aposta.getApostaArray().get(A));
                    erros.add(aposta.getApostaArray().get(A));
                }
                while (C < erros.size()) {
                    while(D < acertos.size()) {

                        if (erros.get(C).equals(acertos.get(D))) {
                            erros.remove(C);
                        }
                        D++;
                    }
                    D = 0;
                    C++;
                }
                D = 0;
                C = 0;
            }

        }
            B++;
    }
        A++;
        B = 0;
        E = 0;
}

Pessoal, já descobri o erro. Logo nos primeiros loops eu não estou aumentando o valor das variáveis A e B, o que torna os loops infinitos e acaba consumindo muita memória. Que erro ridículo, mas fica de aprendizado!