Ir ao conteúdo
  • Cadastre-se

Java ArrayList e método p/ retornar um objeto


Posts recomendados

Olá pessoal, eu estou tentando fzr um cadastro de produtos  e preciso colocar um objeto do tipo "Fornecedor" em um objeto do tipo produto, para isso eu faço o cadastro do fornecedor normalmente e na hora de coloca-lo em um "Produto" eu criei um método para me retornar o fornecedor através de um numero que é tipo um id, assim, esse método me retornaria um objeto do tipo Fornecedor e eu o colocaria no produto pelo "setFornecedor()" do produto. Estou tendo problemas com esse método e com os outros métodos para mostrar a lista de fornecedores, os fornecedores e o método para excluir tb.

Vou postar a parte do código onde estão os métodos.

 

 

import java.util.ArrayList;

public class Estoque {
	
	ArrayList<Produto> lista = new ArrayList<Produto>();
	ArrayList<Fornecedor> lista2 = new ArrayList<Fornecedor>();
	
	
	public void cadProd(Produto p1) {
		if(lista.contains(p1)==true) {
			System.out.println("Este produto já está cadastrado!!");
		}
		else {
			lista.add(p1);
			System.out.println("produto cadastrado!!");
		}
		
	}
	
	public void excluiProd(int id) {
		for(int i = 0;i<lista.size();i++) {
			
			if(lista.get(i).getId()==id) {
				lista.remove(i);
				System.out.println("Produto removido!!");
			}
		}
		
		
	}
	
	public void mostraProd(int id) {
		for(int i = 0;i<lista.size();i++) {
			
			if(lista.get(i).getId()==id) {
				System.out.println(lista.get(i).toString());
			}
		}
		
		
	}
	
	public void mostraLista() {
		System.out.println(lista.toString());
		
	}
	
	public void cadFor(Fornecedor f1) {
		if(lista.contains(f1)==true) {
			System.out.println("Este fornecedor já está cadastrado!!");
		}
		else {
			lista2.add(f1);
			System.out.println("fornecedor cadastrado!!");
		}
	}
	
	public void mostraListFor() {
		for(int i = 0;i<lista2.size();i++) {
			System.out.println((i+1)+" - "+lista2.get(i).toString());
		}
	}
	
	public void mostraFor(int num) {
		for(int i = 0;i<lista2.size();i++) {
			if(lista2.indexOf(lista.get(i))==num-1) {
				System.out.println(lista2.get(i).toString());
			}
		}
	}
	
	public Fornecedor For(int num) {
		for(int i = 0;i<lista2.size();i++) {
			if(lista2.indexOf(i+1)==num) {
				 return lista2.get(i);
			}
		}
		
	}
	
	public void excluiFor(int num) {
		for(int i = 0;i<lista2.size();i++) {
			
			if(lista2.indexOf(lista.get(i))==num-1) {
				lista2.remove(i);
				System.out.println("Fornecedor removido!!");
			}
		}
		
	}

}

  
  

 

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Eu não entendi exatamente qual a dúvida. Mas vamos lá ...
 

Para fazer o get pelo id, você pode fazer exatamente como fez no método de exclusão ... mas retornando o objeto.

	public void getFor(int id) {
		for(int i = 0;i<lista1.size();i++) {
			if(lista1.get(i).getId()==id) {
				return lista1.get(i);
			}
		}
	}

Acabei não compreendendo se fornecedor possui um id ou não, então fiz acreditando que ele possua. Todos os outros métodos se assemelham muito a esse, então basta seguir esse modelo.

PS.: Para melhorar a compreensão do seu código (isso vale pra qualquer linguagem), tente usar nomes de variáveis, atributos e métodos mais contextualizados. Ao invés de lista e lista1, use listaProdutos e listaFornecedores ... nos métodos tb ... getProdutos() para retornar a lista de produtos ... getProduto(id) para retornar um único produto ... assim o código fica mais natural e fácil para entender e dar manutenção

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...