Problema com o exercicio

Eu comecei a desenvolver um programa de conta bancaria usando ArrayList, só que na hora que eu vou pesquisar não to conseguindo encontrar todas as contas que cadastrei somente a ultima que foi cadastrada.
Não estou conseguindo percorrer toda a lista aleatoriamente.
Segue o codigo que ja desenvolvi.

import java.util.;
import javax.swing.
;
import java.util.ArrayList;
import java.util.List;

public class conta_banco {
String nome;
int num_conta,senha;
double saldo_inic;

void cadastro(){
nome = (JOptionPane.showInputDialog(“Digite o seu nome”));
num_conta++;
senha = Integer.parseInt(JOptionPane.showInputDialog(“Digite sua senha”));
saldo_inic = Double.parseDouble(JOptionPane.showInputDialog(“Digite o seu saldo inicial”));
}

void deposito(ArrayList<conta_banco>lista){
int procura;
procura = Integer.parseInt(JOptionPane.showInputDialog(“informe o numero da sua conta”));
for(conta_banco x:lista){
if(x.num_conta == procura){
JOptionPane.showMessageDialog(null,“Nome do titular da conta”+nome);
saldo_inic+=Double.parseDouble(JOptionPane.showInputDialog(“Digite o valor a ser depositado”));
}
else{
JOptionPane.showMessageDialog(null,“Erro”);
}
}

}

void extrato(ArrayList<conta_banco>lista){
int pesquisa;

pesquisa = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da sua conta"));
for(conta_banco x:lista){
     if(x.num_conta == pesquisa){
JOptionPane.showMessageDialog(null,"Nome do titular da conta : "+nome+"\nSaldo : "+saldo_inic);    
}
}

}

void saque(ArrayList<conta_banco>lista){
int procura;
procura = Integer.parseInt(JOptionPane.showInputDialog(“informe o numero da sua conta”));
procura = Integer.parseInt(JOptionPane.showInputDialog(“informe a sua senha”));
for(conta_banco x:lista){
if(x.num_conta == procura & x.senha == procura){
JOptionPane.showMessageDialog(null,“Nome do titular da conta”+nome+“Senha do titular”+senha);
saldo_inic-=Double.parseDouble(JOptionPane.showInputDialog(“Digite o valor a ser sacado”));
}
else{
JOptionPane.showMessageDialog(null,“Erro”);
}
}

}

public static void main(String[] args) {
    int op=1;
    Scanner scan = new Scanner (System.in);
    List<conta_banco> lista = new ArrayList<conta_banco>();
    conta_banco cont = new conta_banco();
    lista.add(cont);
    
    while(op!=0){
        op = Integer.parseInt(JOptionPane.showInputDialog("1 - Cadastrar Conta\n2 - Depositar\n3 - Sacar\n4 - Extrato\n5 - Remover Conta\n0 - Sair"));
        if(op == 1){
            cont.cadastro();
        }
        else if(op == 2){
            cont.deposito(lista);
        }
        else if(op == 3){
            cont.saque(lista);
        }
        else if(op == 4){
            cont.extrato(lista);
        }
        else if(op == 0){
            break;
        }
    }
}


}

Quem puder me ajudar.
Agradeço desde já.

Sempre use a tag ‘Code’ para postar códigos, facilita a leitura.
Sempre inicie o nome de uma classe com letra maiúscula.

No seu main.

List<conta_banco> lista = new ArrayList<conta_banco>(); // cria ArrayList
conta_banco cont = new conta_banco(); // cria cont
lista.add(cont);   // adiciona a  conta no array, creio eu que não seria nesse momento, a conta não possui dado nenhum

Uma dica ‘em que momento está incluindo as novas contas na List?’.

Bom dia coutinho11 .

Esta sempre mostrando o ultimo registro cadastrado, devido vc apenas estar setando as variaveis da sua classe, e não adicionando um objeto na lista.
Para ficar melhor seu exercício, te aconselho a adicionar um objeto na lista no seu método de cadastro.
Ficaria ainda melhor se alterasse ArrayList por HashSet.
Abraços.

Da uma olhada neste exemplo…

import java.util.*;
import javax.swing.*;
import java.util.Map;

public class ContaBanco {
	Map <Integer, BeanConta>lista;
	public ContaBanco() {
		lista = new HashMap<Integer, BeanConta>();
	}

	void cadastro() {
		BeanConta beanConta = new BeanConta();
		beanConta.setNome(JOptionPane.showInputDialog("Digite o seu nome"));
		beanConta.setNum_conta(Integer.parseInt(JOptionPane.showInputDialog("Digite o nº da Conta")));
		beanConta.setSenha(Integer.parseInt(JOptionPane.showInputDialog("Digite sua senha")));
		beanConta.setSaldo_inic(Double.parseDouble(JOptionPane.showInputDialog("Digite o seu saldo inicial")));
		lista.put(beanConta.getNum_conta(), beanConta);
	}

	void deposito() {
		int procura;
		procura = Integer.parseInt(JOptionPane.showInputDialog("informe o numero da sua conta"));
		BeanConta result;
		if ((result = lista.get(procura)) != null) {
			JOptionPane.showMessageDialog(null, "Nome do titular da conta" + result.getNome());
			result.setSaldo_inic(result.getSaldo_inic() + Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser depositado")));			
		} else {
			JOptionPane.showMessageDialog(null, "Erro");
		}
	}

	void extrato() {
		int pesquisa;
		pesquisa = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da sua conta"));
		BeanConta result;
		if ((result = lista.get(pesquisa)) != null) {
			JOptionPane.showMessageDialog(null, "Nome do titular da conta : " + result.getNome() + "\nSaldo : "
					+ result.getSaldo_inic());
		}
	}

	public static void main(String[] args) {
		int op = 1;
		ContaBanco cont = new ContaBanco();		
		while (op != 0) {
			op = Integer
					.parseInt(JOptionPane
							.showInputDialog("1 - Cadastrar Conta\n2 - Depositar\n3 - Sacar\n4 - Extrato\n5 - Remover Conta\n0 - Sair"));
			if (op == 1) {
				cont.cadastro();
			} else if (op == 2) {
				cont.deposito();
			} else if (op == 3) {
				//cont.saque();
				// Agora faz a lógica para sacar...
			} else if (op == 4) {
				cont.extrato();
			} else if (op == 0) {
				break;
			}
		}
	}

	private class BeanConta {
		/**
		 * @return Retorna nome.
		 */
		public String getNome() {
			return nome;
		}

		/**
		 * @return Retorna num_conta.
		 */
		public int getNum_conta() {
			return num_conta;
		}

		/**
		 * @return Retorna senha.
		 */
		public int getSenha() {
			return senha;
		}

		/**
		 * @return Retorna saldo_inic.
		 */
		public double getSaldo_inic() {
			return saldo_inic;
		}

		/**
		 * @param nomeParam Atribui nome.
		 */
		public void setNome(String nomeParam) {
			this.nome = nomeParam;
		}

		/**
		 * @param num_contaParam Atribui num_conta.
		 */
		public void setNum_conta(int num_contaParam) {
			this.num_conta = num_contaParam;
		}

		/**
		 * @param senhaParam Atribui senha.
		 */
		public void setSenha(int senhaParam) {
			this.senha = senhaParam;
		}

		/**
		 * @param saldo_inicParam Atribui saldo_inic.
		 */
		public void setSaldo_inic(double saldo_inicParam) {
			this.saldo_inic = saldo_inicParam;
		}

		private String nome;
		private int num_conta, senha;
		private double saldo_inic;
	}
}

[quote=diego.sas]Bom dia coutinho11 .

Ficaria ainda melhor se alterasse ArrayList por HashSet.
Abraços.
[/quote]

Vc pode me explicar pq seria melhor??

[quote=Lucas Abbatepaolo][quote=diego.sas]Bom dia coutinho11 .

Ficaria ainda melhor se alterasse ArrayList por HashSet.
Abraços.
[/quote]

Vc pode me explicar pq seria melhor??[/quote]

De imediato citei o HashSet, pois acreditei que ele não gostaria de ter o mesmo objeto na lista n vezes…

Realmente, só apresenta o ultimo resgistro por que você só adicionou um.

No seu while você deveria adicionar um novo objeto conta na lista sempre que o compando for cadastrar.

Aew pessoal valew pelas dicas mas consegui pesquisar agora to tentando remover um elemento da ArrayList

[code]import java.util.;
import javax.swing.
;
import java.util.ArrayList;

public class conta_banco {
String nome;
int num_conta,senha;
double saldo_inic;

void cadastro(conta_banco x){
x.nome = (JOptionPane.showInputDialog(“Digite o seu nome”));

x.senha = Integer.parseInt(JOptionPane.showInputDialog("Digite  sua senha"));


x.saldo_inic = Double.parseDouble(JOptionPane.showInputDialog("Digite o seu saldo inicial")); 

}

void deposito(ArrayList<conta_banco>lista){
int procura;
// pesquisar o a conta pelo numero
procura = Integer.parseInt(JOptionPane.showInputDialog(“informe o numero da sua conta”));
for(conta_banco x:lista){
//Se encontra o numero da conta digitada a pessoa faz o deposito
if(x.num_conta == procura){
JOptionPane.showMessageDialog(null,“Nome do titular da conta”+x.nome);
x.saldo_inic+=Double.parseDouble(JOptionPane.showInputDialog(“Digite o valor a ser depositado”));
}

}

}

void extrato(ArrayList<conta_banco>lista){
int pesquisa,busca_senha;
pesquisa = Integer.parseInt(JOptionPane.showInputDialog(“Digite o numero da sua conta”));
for(conta_banco x:lista){
if(x.num_conta == pesquisa){
busca_senha=Integer.parseInt(JOptionPane.showInputDialog("Digite a senha "));
if(x.senha==busca_senha)
{
//lista.remove(x);
JOptionPane.showMessageDialog(null,"Nome do titular da conta : “+x.nome+”\nSaldo : "+x.saldo_inic);
}
//f(x.nome.compareToIgnoreCase(busca)==0)
}

}
}

void saque(ArrayList<conta_banco>lista)
{
int pesquisa,busca_senha,busca_saldo;
pesquisa = Integer.parseInt(JOptionPane.showInputDialog(“Digite o numero da sua conta”));
for(conta_banco x:lista){
if(x.num_conta == pesquisa){
busca_senha=Integer.parseInt(JOptionPane.showInputDialog("Digite a senha "));
if(x.senha==busca_senha)
{
if(x.saldo_inic<=0)
{
JOptionPane.showMessageDialog(null,“Saldo inferior ao solicitado”);
}
busca_saldo = Integer.parseInt(JOptionPane.showInputDialog(“Digite o valor a ser sacado”));
if(busca_saldo > x.saldo_inic)
{
JOptionPane.showMessageDialog(null,"Valor solicitado acima ");
}
else{
x.saldo_inic-=busca_saldo;
}

         }  

}
//lista.remove(x);
}
}

void remover(ArrayList<conta_banco>lista)
{
int pesquisa,busca_senha;
pesquisa = Integer.parseInt(JOptionPane.showInputDialog(“Digite o numero da sua conta”));
for(conta_banco x:lista){
if(x.num_conta == pesquisa){
busca_senha=Integer.parseInt(JOptionPane.showInputDialog("Digite a senha "));
if(x.senha==busca_senha)
{

         if(lista.remove(lista))
         {
             JOptionPane.showMessageDialog(null,"Conta Removida");
         }
         else
         {
             break;
             
         }
           
      }
    }
}// terminar o remover

}

public static void main(String[] args) {
    int op=1,cont1=0;
    Scanner scan = new Scanner (System.in);
    ArrayList<conta_banco> lista = new ArrayList<conta_banco>();
     while(op!=0){
    conta_banco cont = new conta_banco();
    //adiciona o objeto na lista
    lista.add(cont);
    
  
        op = Integer.parseInt(JOptionPane.showInputDialog("1 - Cadastrar Conta\n2 - Depositar\n3 - Sacar\n4 - Extrato\n5 - Remover Conta\n0 - Sair"));
        if(op == 1){
            cont.cadastro(cont);
            while(op==1)
            {
                cont1++;
                break;
            }
            cont.num_conta=cont1;
            JOptionPane.showMessageDialog(null,"Titular "+cont.nome+"Numero conta"+cont.num_conta);
        }
        else if(op == 2){
            cont.deposito(lista);
        }
        else if(op == 3)
                {
            cont.saque(lista);        
                }
        else if(op == 4){
            cont.extrato(lista);
        }
        else if(op == 5)
        {
            cont.remover(lista);
        }
        else if(op == 0){
            break;
        }
    }
}}

[/code]

Só uma dica, vi que você esta utilizando ArrayList como tipo de parametro dos seus métodos.

Procure utilizar interface ao invés da classe que implementa a mesma.

void deposito(ArrayList<conta_banco>lista)// Seu método
void deposito(List<conta_banco>lista)// Procure fazer assim.

Abçs

[quote]coutinho11 [code]void remover(ArrayList<conta_banco>lista)
{
int pesquisa,busca_senha;
pesquisa = Integer.parseInt(JOptionPane.showInputDialog(“Digite o numero da sua conta”));
for(conta_banco x:lista){
if(x.num_conta == pesquisa){
busca_senha=Integer.parseInt(JOptionPane.showInputDialog("Digite a senha "));
if(x.senha==busca_senha)
{

         if(lista.contains(x))  
         {   
             lista.remove(x);
             JOptionPane.showMessageDialog(null,"Conta Removida");   
         }   
         else   
         {   
             JOptionPane.showMessageDialog(null,"Não localizado");   
             break;   
               
         }   
             
      }   
    }   
}// terminar o remover   

}
[/code]][/quote]

Se você cadastra só um cliente ele exclui sem nenhum problema porem se vc cadastrar mais de o programa da a mensagem que a conta foi excluida só que não esta retornando no menu,
Encerra a execução logo após.

Um Help Por Favor

Você não pode remover um objeto da lista que esta sendo iterada.
Causará uma exceção…
Desconsidera o exemplo que te mandei, e utiliza uma lista auxiliar.