Arrays e listas

6 respostas
C

Supondo que eu tivesse um vetor de contas de banco. Como faria para saber a quantidade de contas e a soma do saldo das contas que estão no índices do vetor

Gostaria de saber também se eu tiver usando lista.[/i]

6 Respostas

N

se vc tiver um vetor tipo int[], vc vai ter que percorrer o vetor para saber. Mas se vc tiver usando a classe Vector, vc pode usar o método size(), que retorna um int que representa o tamanho.

A classe List tb tem o um método size().

J

Oi

creipi, se vc estiver usando um vetor do tipo [ ] (int[]) vc pode usar a variável “length” para saber o tamanho.

T+

N

“jeveaux”:
Oi

creipi, se vc estiver usando um vetor do tipo [ ] (int[]) vc pode usar a variável “length” para saber o tamanho.

T+

usando o length do vetor vc vai ter o tamanho com q foi criando o vetor. Então, se vc criar um vetor com 50 posições, independetemente de vc ter colocado algum valor no vetor, o length vai retornar 50.

F

mas se vc criar um int[], todos os valores serao iniciados com 0, e se vc for percorrer um por um se algum tivesse sido alterado para zero por ex:

int valores = new int[3];
valores[0] = 1;
valores[1] = 0;
valores[2] = 1;

a contagem pararia no [1]…
entaum o ideal eh usar arryList…

C

Obrigado pessoal pela ajuda, mas vou ser mais claro na minha dúvida.

No meu programa tenho uma classe ContaV, essa classe tem três variáveis: numero, saldo, operacoes.

Outra classe que é a BancoV tem o seguinte código:
Obs: a minha dúvida está em baixo do código. :o

import javax.swing.*;

class BancoV implements QqBanco{

private ContaV[] contas;

private int indice=0;

private double taxa_juros=0;

BancoV() {
contas = new ContaV[100];

}

//cadastra conta

void cadastro(ContaV c) {

ContaV c2;

String num=c.numero();

c2 = this.procurar(num);

if (c2!=null) {

JOptionPane.showMessageDialog(null, existe Conta com esse número!”);

}

else {

contas[indice] = c;

indice++;
}

}

//excluir conta

void excluir(String num) {

ContaV c3;

ContaV ultima;

c3=this.procurar(num);

if (c3==null) {

JOptionPane.showMessageDialog(null,Conta inexistente!”); }

else {

ultima=contas[indice];

if (c3==ultima) {

c3=null;}

else {

c3=ultima;}

indice;

JOptionPane.showMessageDialog(null,Conta excluída com sucesso!”);
}

}

//procura conta

private ContaV procurar(String num) {

int i=0;

boolean achou=false;

while ((!achou)&&(i<indice)) {

if (contas[i].numero().equals(num)) achou=true;

else i++;

}

if (achou==true) return contas[i];

else return null;

}
//saque na conta

void saque(String num, double val) {

ContaV c=this.procurar(num);

if (c!=null) {
if (c.saldo()>=val)
	{
	c.debito(val); 
	   		c.inclui_operacao("\nDebito......................................................................"+val);
	   		if (c instanceof ImpostoV)
	       		c.inclui_operacao("\nDebito de Imposto................................................"+ (val*0.01));
	   
}

  	else JOptionPane.showMessageDialog(null,"Conta não tem saldo suficiente!");
}

else JOptionPane.showMessageDialog(null,“Conta inexistente!);

}
//deposito na conta

void deposito(String num, double val) {

ContaV c=this.procurar(num);

if (c!=null) {c.credito(val);    c.inclui_operacao("\nCredito…"+val);}

else JOptionPane.showMessageDialog(null,Conta inexistente!”);

}
//saldo da conta

void saldo(String num) {

ContaV c=this.procurar(num);

if (c!=null)

JOptionPane.showMessageDialog(null,"=========== S  A  L  D  O ==========="+

"\nNúmero da Conta…: "+c.numero()+

"\nSaldo da Conta…: "+c.saldo()+\n================================);

else JOptionPane.showMessageDialog(null,Conta inexistente!”);

}

//transferencia
void transfere(String origem, String destino, double val) {

boolean erro=false;

ContaV cOrig = this.procurar(origem);

if (cOrig==null) {

JOptionPane.showMessageDialog(null,Conta de origem inexistente!);

erro=true;

}

ContaV cDest = this.procurar(destino);	

if (cDest==null) {

JOptionPane.showMessageDialog(null,Conta de destino inexistente!);

erro=true;

}

if(erro==false){

if (cOrig.saldo() >= val){

cOrig.debito(val);

cDest.credito(val);

cOrig.inclui_operacao("\nDebito de transferencia para Conta Nº “+cDest.numero()+”…"+val );

cDest.inclui_operacao("\nCredito de transferencia da Conta Nº “+cOrig.numero()+”…"+val );

}

else

JOptionPane.showMessageDialog(null,Conta de origem não tem saldo suficiente!);
}

}

//rende juros

void rende_juros(String num) {

ContaV c = this.procurar(num);

if (c != null) {

if (c instanceof PoupancaV) {
c.inclui_operacao("\nJuros da Poupança............................................."+ (this.getJuros()));
     
     ((PoupancaV)c).rende_juros(this.getJuros());}
  else JOptionPane.showMessageDialog(null,"Essa Conta nao é Poupança!");
}
else JOptionPane.showMessageDialog(null,"Conta inexistente!");

}

double getJuros() { return taxa_juros; }

void altera_juros(double juros) {

taxa_juros = juros;

}
//imprime extrato

public void imprime_extrato(String num)

{
ContaV c=this.procurar(num);
 String aux="";
 if (c!=null){
    aux=c.extrato();
    aux+="\n\nSaldo atual............................................................."+c.saldo()+"\n========================================";
    JOptionPane.showMessageDialog(null,aux);
 }
 else
    JOptionPane.showMessageDialog(null,"Conta inexistente");

}

public double Saldo_Total() {return 1;}
// soma o saldo de todas as contas do banco

public int Num_Contas() {return 1;}
// conta a quantidade de contas cadastradas

// extrato para emitir o extrato de uma determinada conta
}

O que eu queria saber é como implementar os dois métodos:
public double Saldo_Total()
Para saber a soma do saldo de todas as contas do banco

public int Num_Contas()
Para saber a quantidade de contas cadastradas

Desde já agradeço

N

Deve ser mais ou menos isso:

public double Saldo_Total() {

double saldoTotal = 0;

for (int j = 0; j < contas.length; j++) {

if (contas[j] != null) {

saldoTotal += contas[j].saldo();

}

}

return(saldoTotal);

}
public int Num_Contas() {

int numContas = 0;

for (int j = 0; j < contas.length; j++) {

if (contas[j] != null) {

numContas++;

}

}

}
Criado 4 de novembro de 2003
Ultima resposta 5 de nov. de 2003
Respostas 6
Participantes 4