Uso de arrays

4 respostas
Djheison

Iae galera!!!

Não sei muito bem como funcionam arrays em java .
Alguém pode me ajudar??

É o seguinte:

criei as seguintes classes:

Produto
Venda

Na classe venda preciso criar um array do tipo Produto que pode receber outro array contendo o produto e a quantidade (int quantidade Produto produto).

Como faço isso?

Isso funciona como um processo de venda, onde o array “itens” recebe vários produtos e no final calcula o valor da venda…

Aguarda ajuda…

Desde já muito Obrigado

4 Respostas

E

De uma olhada.

Interface List,
Classe ArrayList ou quem sabe
Vector

adriano_si

e só pergunte de novo, depois de ter tentado fazer alguma coisa… por favor…

B

Arrays é uma agrupamento estático(não pode mudar de tamanho) de elementos de um mesmo tipo. Por exemplo:

// cria um array de Produto com 5 posições.
// todas as posições começam nulas
Produto[] produtos = new Produto[5];

// para usar:
// os índices começam sempre do zero
// primeiro produto, Sabão a 1 real.
produto[0] = new Produto("Sabão", 1.00);

// se quiser iterar por todos os produtos:
for (Produto p : produtos)
  System.out.println(p);

Bem, o teu primeiro problema é que arrays não crescem, portanto se você tiver uma venda, não dá para adicionar um novo produto caso o array estiver cheio.

Nestes casos, e praticamente em todos os casos, utilizamos as Collections:

public class Venda {
  class ItemVenda {
    Produto p;
    int qtd;
 
    ItemVenda(Produto p, int qtd) {
      this.p = p;
      this.qtd = qtd;
    }

    public void adicionar(int qtd) {
      this.qtd += qtd;
    }
  }

  private long idVenda;
  private Vendedor vendedor;

  // uso um mapa para achar rapidamente o item.
  private Map<Produto, ItemVenda> itens = new HashMap<Produto, ItemVenda>();

  public void adicionar(Produto p, int quantidade) {

    ItemVenda item = itens.get(p);
    if (item == null) // se não tiver
      item = new ItemVenda(p, quantidade);
      itens.put(p, item); // adiciona o item à coleção
    else // se tiver, atualiza a quantidade
      item.adiciona(quantidade);
  }

  public void remover(Produto p) {
    itens.remove(p);
  }
}

Neste caso nem precisa se preocupar que a coleção de itens vai crescer automaticamente.

Djheison

vlw mesmo
vou dar uma olhada nos exemplos
t+ pessoal

Criado 14 de abril de 2009
Ultima resposta 14 de abr. de 2009
Respostas 4
Participantes 4