Como criar várias instancias de um mesmo objeto automaticamente

5 respostas
K

Galera, boa tarde.

Seguinte, tenho uma atividade pra desenvolver aqui, e estou meio enrrolado...
Assim, existe uma classe Agencia, ela tem como função ter os dados de uma agencia bancária, na agencia temos no máximo 5 e no minimo 3 caixas,
sendo que essa quantidade posse ser aleatória.

Nesse ponto tudo bem, atravéz do
Randon()
, e pelo fato de ser uma variavel com capacidades bem limitadas, deu pra resolver.

Mas cada caixa tem sua fila de clientes, e ai que o problema começa, pq a quantidade de clientes por fila varia de 0 a 100 oO.
Como eu faço pra criar automaticamente uma fila com uma quantidade variada de clientes (de 0 a 100 por exemplo) automaticamente?

Classes: Agencia, Pessoa (que pode ser um cliente ou um caixa), Caixa (que é uma pessoa).

Vou colocar apenas o código da agencia, pq da forma como eu imagino, a agencia tem uma lista de caixas, e cada um desses caixas tem uma fila de clientes.

public class Agencia {

    private String numero;
    private String cidade;
    private String[] nomeCidades = {"aracaju", "são paulo", "palmas", "goiania", "augustinópolis", "belem"};
    private String estado;
    private String endereco;
    private Pessoa gerente;
    private List<Caixa> caixas = new ArrayList<Caixa>();
    private Caixa c1 = new Caixa();
    private Caixa c2 = new Caixa();
    private Caixa c3 = new Caixa();
    private Caixa c4 = new Caixa();
    private Caixa c5 = new Caixa();
    private List<Pessoa> clientes = new ArrayList<Pessoa>();
    private int quantidadeDeCaixas;
    private String numeroDaConta = " ";
    Random aleatorio = new Random();
    

    public Agencia()
    {   String nomes[] = {"elizabeth", "anna", "douglas", "antonio", "luiz"};
        String nomesCaixas[] = {"antonio", "marcelo", "patricia", "kamila","joao"};
        numero = aleatorio.nextInt() + " - " + aleatorio.nextInt(9);
        cidade = nomeCidades[aleatorio.nextInt(6)];
        if(cidade.equals("aracaju"))
        {
            estado = "Serjipe";
            endereco = "Rua tom jobim, 47";
        }
        if(cidade.equals("são paulo"))
        {
            estado = "São paulo";
            endereco = "Rua seu jorge, 52";
        }
        if(cidade.equals("palmas"))
        {
            estado = "Tocantins";
            endereco = "806 sul alameda 14";
        }
        if(cidade.equals("goiania"))
        {
            estado = "Goiás";
            endereco = "rua carrefour";
        }
        if(cidade.equals("augustinópolis"))
        {
           estado = "Tocantins";
           endereco = "rua dos bois, 14";
        }
        if(cidade.equals("belem"))
        {
            estado = "Pará";
            endereco = "rua mata bandido, 11";
        }
        quantidadeDeCaixas = aleatorio.nextInt(3)+3;

        if(quantidadeDeCaixas  == 3)
        {
            caixas.add(c1);
            caixas.get(0).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
            caixas.add(c2);
            caixas.get(1).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
            caixas.add(c3);
            caixas.get(2).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
        }
        if(quantidadeDeCaixas == 4)
        {   caixas.add(c1);
            caixas.get(0).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
            caixas.add(c2);
            caixas.get(1).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
            caixas.add(c3);
            caixas.get(2).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
            caixas.add(c4);
            caixas.get(3).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
        }
        if(quantidadeDeCaixas == 5)
        {
            caixas.add(c1);
            caixas.get(0).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
            caixas.add(c2);
            caixas.get(1).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
            caixas.add(c3);
            caixas.get(2).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
            caixas.add(c4);
            caixas.get(3).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
            caixas.add(c5);
            caixas.get(4).getCaixa().setNome(nomesCaixas[aleatorio.nextInt()]);
        }

    }

    public Pessoa getGerente() {
        return gerente;
    }

    public void setGerente(Pessoa gerente) {
        this.gerente = gerente;
    }

5 Respostas

MarcioCasteloBranco

Amigão se entendi bem, você que um método que crie 100 clientes?

public void newCliente(){
                         int x = 0;
                         while(x <  99){
                                    clientes.add(pessoas);
                       }
                  }

vê se te ajuda Amigão!!!
Obrigado!!

Eder_Peixoto

Utilize o método Random.nextInt( 101 ), o qual irá geral um número inteiro de 0 (zero) a 100 (cem).

MarcioCasteloBranco

A sim pensei que você gostaria de criar de 0 a 100 clientes !!!
Mas você quer criar aleatoriamente de 0 a 100 !!
Valeu entendi desculpe não ter entendido sua pergunta!!

CrOnNoS

Para a quantidade de clientes randomica você já fez então sabe fazer de novo né.
Depois de ter a quantidade de clientes, você pode usar um for de i = 0 até a quantidade randomizada, e dentro dele incluir clientes em uma ArrayList (por exemplo) de clientes.
Exemplo de código:

ArrayList<Clientes> clientesDaFilaUm = new ArrayList<Clientes>(); for (int i = 0; i < quantidadeDeClientes; i++) { clientesDaFilaUm.add(new Cliente()); } // for

ArrayList é um objeto array como os que você cria com “String array[] = new String[20]”, mas com tamanho dinâmico. Ou seja, quando você cria ele (logo a cima do for) ele tem size() = 0, e a cada iteração, que vai até a quantidade randomica de clientes que você obteve, será acrescentado um novo cliente ao array até o size() ficar igual a “quantidadeDeClientes”.

K

Pow CrOnNoS é isso ai mesmo.

Fui me tocar disso ontem de noite, huahuaha

Cara vlws mesmo.

MarcioCasteloBranco ja valeu a intenção de ajudar hauhauhauha

Vlws galera.

Criado 24 de outubro de 2009
Ultima resposta 26 de out. de 2009
Respostas 5
Participantes 4