Dúvida em ArrayList

Galera estou com uma dúvida em no meu código usando arraylist é o seguinte estou tentando
adicionar pedidos do cliente e quero deixar com q o cliente escolha quantos livros ele quiser
e esse pedido ficar com o mesmo código do pedido, só q ta dando um bug na hora de imprimir os clientes junto com seu pedido, ele ta mostrando os clientes e depois todo os pedido alguma solução para ele mostrar os pedido de acordo com os clientes??
código abaixo

do{
                System.out.println("\nPEDIDO DO CLIENTE "+this.nome.toUpperCase());
                System.out.println("");
                
                pedido = new Pedido(); 
                pedido.setCodigo(x+=1);
                pedido.setEditora(this.nomeEdi);
                pedido.setCliente(this.nome);
                pedidos.add(pedido);
                do{
                    livro = new Pedido();
                    System.out.print("NOME DO LIVRO: ");
                    livro.setLivro(new Scanner(System.in).nextLine().trim());
                    System.out.print("QUANTIDADE DE LIVROS: ");
                    livro.setQtd(teclado.nextInt());
                    contador++;
                    livros.add(livro);
                
                    System.out.println("\n(0) ----VOLTAR PARA PEDIDOS\n(1) ----ADD LIVRO");
                    System.out.print("OPÇÃO: ");
                    es = teclado.nextInt();
                    System.out.println("");
                }while(es!=0);
            
                System.out.println("\n(0) ----VOLTAR PARA O MENU\n(1) ----NOVO PEDIDO C/ O MESMO CLIENTE");
                System.out.print("OPÇÃO: ");
                es = teclado.nextInt();
                System.out.println("");
            }while(es!=0);
        }   

public void PedidosEmAndamento(){
        Iterator y = pedidos.iterator();
        Iterator i = livros.iterator();
        System.out.println("\n\tPEDIDOS EM ANDAMENTO\n");
        while(y.hasNext()){
            pedido = (Pedido)y.next();
            System.out.println("CLIENTE "+pedido.getCliente());
            System.out.println("EDITORA "+pedido.getEditora());
        }
        while(i.hasNext()){
            System.out.println("NOME DO LIVRO "+livro.getLivro());
            System.out.println("CÓDIGO DO PEDIDO: "+livro.getCodigo());
            System.out.println("");
        }

Por que você precisa que estas variáveis estejam no escopo da classe?

porque eu estou puxando desse metodo aqui o cliente e a editora, para representar o cliente escolhido e a editora escolhida e com estas informações fazer o pedido.

public void RealizarPedido(){
        System.out.print("\nSELECIONE O CLIENTE: ");
        this.nome = new Scanner(System.in).nextLine().toUpperCase().trim();
        System.out.print("SELECIONE A EDITORA: ");
        this.nomeEdi = new Scanner(System.in).nextLine().toUpperCase().trim();