Dúvida com arraylist

15 respostas
F

E ai pessoal, to fazendo um sistema pra um projeto de faculdade e pintou uma duvida, se alguem puder me ajudar eu agradeço.

Tenho uma lista que armazena produtos de uma loja, esses produtos tem como atributo o tipo. Tenho nessa lista tres tipos de produto.

Guitarra, baixo e bateria. Gostaria de saber como pegar apenas os produtos do tipo bateria por exemplo.

Valeu.

15 Respostas

guisantogui
faça algo do tipo
ArrayList auxilar = new Arr...

para todos os produtos
  se produto.getTipo() for igual a Bateria
 auxiliar.add(produto);
retorna auxiliar;
F

Valeu ae brother, vou tentar desta maneira.

Origado pela ajuda.

guisantogui

Se consegui soh coloca um [RESOLVIDO] pra galera não entrar no topic que jah esta ok! :wink:

F

Na verdade não entendi muito bem, seria algo assim?

public class ArmazemDeProdutos {

	List<Produto> listaDeProdutos = new ArrayList<Produto>();

	public List<Produto> adicionarProdutoBateria(Produto p) {

		if (p.tipo() == "Bateria")
			;

		listaDeProdutos.add(p);

		return listaDeProdutos;
	}

	public List<Produto> adicionarProdutoBaixo(Produto p) {

		if (p.tipo() == "Baixo")
			;

		listaDeProdutos.add(p);

		return listaDeProdutos;

	}

	public void informeTamanho() {

		listaDeProdutos.size();
	}

}


----------------------------------------------------


public class ListaDeProdutos {

	ArmazemDeProdutos armazem=new ArmazemDeProdutos();
	public void adicionarProdutoAoEstoque() {

		armazem.adicionarProdutoBateria(new Produto("Bateria"," DW Colectors",
				"14'' 10'' 12'' 14'' 22''", "R$8000", "bateria0", 2));
		armazem.adicionarProdutoBateria(new Produto(
				"Bateria", "Tama Starclassic", "13'' 12'' 13'' 16'' 20'' ",
				"R$6000", "bateria1", 3));
		armazem.adicionarProdutoBateria(new Produto(
				"Bateria", "Pearl Reference", "14'' 12'' 16'' 22''", "R$6000",
				"bateria2", 3));
		armazem.adicionarProdutoBaixo(new Produto(
				"Baixo", "Warmick Corvette", "14'' 12'' 16'' 22''", "R$6000",
				"baixo0", 3));
		armazem.adicionarProdutoBaixo(new Produto(
				"Baixo", "Warmick Corvette", "14'' 12'' 16'' 22''", "R$6000",
				"baixo1", 3));
		armazem.adicionarProdutoBaixo(new Produto(
				"Baixo", "Warmick ", "14'' 12'' 16'' 22''", "R$6000",
				"baixo2", 3));
	

	}

	

}
aajjbb

opa, cara, poe uma DW nessa lista de bateras ai, a proposito, usa o enhaced-for ai, pra iterar so o tipo de objeto que você quer

Ziguifrid

Seria assim?

package produto;

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

/**
 *
 * @author Michel A. Medeiros
 */
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Object laco = 1;
        Produto p;
        try{
            List<Produto>listaDeProdutos = new ArrayList<Produto>();          
do{
    p = new Produto();

    String tipo = JOptionPane.showInputDialog("Entre com o tipo de instrumento.");
    p.setTipoProduto(tipo);
    listaDeProdutos.add(p);

    laco = JOptionPane.showInputDialog("Digite um número diferente de 1 para sair do programa.");

}while(laco.equals("1"));

System.out.println("Tamanho da lista: " + listaDeProdutos.size());

for  (int  i = 0; i < listaDeProdutos.size(); i++) {

    System.out.println("Lista de produtos: " + listaDeProdutos.get(i).getTipoProduto());
    
              if(listaDeProdutos.get(i).getTipoProduto().equals("bateria")){

                  System.out.println("Produto requerido: "+ listaDeProdutos.get(i).getTipoProduto());
              }

}//fim do for
        }//fim do try

        catch (Exception e){

        }


    }//fim do main

}

Classe produto

package produto;



/**
 *
 * @author Michel A. Medeiros
 */
public class Produto {

    private String tipoProduto;

    /**
     * @return the tipoProduto
     */
    public String getTipoProduto() {
        return tipoProduto;
    }

    /**
     * @param tipoProduto the tipoProduto to set
     */
    public void setTipoProduto(String tipoProduto) {
        this.tipoProduto = tipoProduto;
    }


}
guisantogui

Saindo do pseudo-codigo que eu coloquei acima faça assim

public List pegaBateria(){
     List aux = new ArrayList();
     for(int i =0; i <listaDeProdutos.size(); i++){
         if(listaDeProdutos.get(i).getTipo().equals("bateria")){
             aux.add(listaDeProdutos.get(i));
         }
     }
     return aux;
}

Se quiser fazer algo mais profissional voce pode usar Enum’s é bem facil, procura no google que tem bastante coisa!

aajjbb

acho q nessas condições <instrumento, tipo>; poderia ser usado um map.

F

valeu mais uma vez ae guisantogui

o"pseudo código" ueheuheuhe

não tava daquele jeito, eu é que entendi errado o que você me disse ai eu modifiquei e fiz aquela “M******”

falou

allyssonluan

VOcê também pode fazer dessa forma (é bem simples):

public class Produto {  
	enum Tipo {GUITARRA,BAIXO,BATERIA};  
	private Tipo tipo;
	private String modelo;
	private String marca;
	
	/**
	 * @param tipo 
	 * 		Tipo do Produto (definido por uma enum)
	 * @param modelo
	 * 		Modelo do Produto
	 * @param marca
	 * 		Marca do Produto
	 */
	public Produto(Tipo tipo,String modelo, String marca) {
		this.tipo = tipo;
		this.modelo = modelo;
		this.marca = marca;
	}
	public String getModelo() {return modelo;}
	public void setModelo(String modelo) {this.modelo = modelo;}
	public String getMarca() {return marca;}
	public void setMarca(String marca) {this.marca = marca;}
	public Tipo getTipo() {return tipo;}
	public void setTipo(Tipo tipo) {this.tipo = tipo;}

	public static void main(String[] args) {  
		List<Produto> listaDeProdutos = new ArrayList<Produto>();
		
		//Inserindo valores
		listaDeProdutos.add(new Produto(Tipo.BAIXO, "Music Man Sting Ray", "Ernie Ball - Music Man"));
		listaDeProdutos.add(new Produto(Tipo.BAIXO, "Epiphone SG", "Epiphone"));
		listaDeProdutos.add(new Produto(Tipo.BAIXO, "Fender Jaguar Bass", "Fender"));
		listaDeProdutos.add(new Produto(Tipo.BATERIA, "Pearl Vision", "Pearl"));
		listaDeProdutos.add(new Produto(Tipo.BATERIA, "Ludwig Vistalite", "Ludwig "));
		listaDeProdutos.add(new Produto(Tipo.GUITARRA, "Jackson Randy Rhoads", "JAckson"));
		listaDeProdutos.add(new Produto(Tipo.GUITARRA, "Gibson Flying V VOODOO", "Gibson"));
		
		//Imprimindo valores
		for(Produto produto: listaDeProdutos){
			
			//Verifico se o tipo do produto é bateria
			if(produto.getTipo() == Tipo.BATERIA){
				System.out.println("----------------------------------------------------------------------------------------------------");
				System.out.println("Tipo de Produto: "+ produto.getTipo() +"\t Modelo: "+ produto.getModelo() +"\t Marca: "+ produto.getMarca());
				System.out.println("----------------------------------------------------------------------------------------------------");
			}
		}	
	}
}

Flw!

F

allyssonluan, essa solução com Enum tb é show de bola.

valeu cara!

F

Por exemplo, falando em interface gráfica: a hora que eu cliquei no botao do meu sistema “bateria dw colectors” eu preciso que ele me retorne esse modelo.

public Produto pegueProduto(){  
     
      for(int i =0; i <listaDeProdutos.size(); i++){  

         if(listaDeProdutos.get(i).getModelo.equals("bateria dw colectors")){  

                 ???????????? 
           }  
       }  
         return p
    }

Não sei como vou tirar esse produto desse lista e retorná-lo, alguem poderia ajudar? Grato.

allyssonluan

Você deve adicionar um listener em seu botão:

JButton jButton = new JButton(); jButton.addMouseListener(new MouseListener() { public void mouseReleased(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} });

Após selecionar um botão e você criar o MouseListener, implemente o tipo de evento de mouse que você quiser! O interessante seria “mouseClicked”, daí você implementa lá dentro quando clicar no objeto você.

Era mais ou menos isso?

F

na verdade a parte de interface nao me interessa muito pq eu ja to ligado como fazer, so queria saber como retornar um produto do modelo tal, exemplo modelo dw colectors

public Produto pegueProduto(){    
     
    for(int i =0; i <listaDeProdutos.size(); i++){    
  
       if(listaDeProdutos.get(i).getModelo.equals("bateria dw colectors")){    
  
               ????????????   
         }    
     }    
       return p???
  }
F

^^^^^^^^^^^^

resolvido, mas valeu pela ajuda.

Qualquer dúvida eu posto aqui

valeu a todos que ajudaram

Criado 21 de junho de 2010
Ultima resposta 23 de jun. de 2010
Respostas 15
Participantes 5