siber7 0 Denunciar post Postado Março 10, 2016 Olá, A todos, estou iniciando os meus estudos em java, e me deparei com um problema que no caso seria: como fazer um teste pra nao deixar adicionar uma pizza sem ingredientes na Lista carrinhoDeCompras. E em qual classe eu teria que por esse metodo? OBS: já me disseram que está bem mal encapsulado, mas ainda nao aprendi bem esse conceito, entao deixarei para aplicar depois que eu entender bem desse assunto. public class Pizza { static Map<String, Integer> ingredientes= new HashMap<>(); int contaIngrediente=0; static int contaPizza=0; public void adicionaIngrediente(String ingrediente, Integer quantidade){ if(ingredientes.containsKey(ingrediente)){ int aux= ingredientes.get(ingrediente); ingredientes.put(ingrediente, quantidade+aux); } else { ingredientes.put(ingrediente, quantidade); } contaIngrediente++; } } public class CarrinhoDeCompras { List<Pizza> pizzas= new ArrayList<Pizza>(); public void retornarTotalPizzas(){ System.out.println("\n"); System.out.println("Total de pizzas no carrinho: "+pizzas.size()); System.out.println("\n"); } public class Principal { public static void main(String[] args){ CarrinhoDeCompras carrinhoDeCompras= new CarrinhoDeCompras(); Pizza pizza1= new Pizza(); pizza1.adicionaIngrediente("Pepperoni", 8); pizza1.adicionaIngrediente("Bacon", 7); pizza1.adicionaIngrediente("Presunto", 9); carrinhoDeCompras.pizzas.add(pizza1); Pizza pizza2= new Pizza(); **********witout put ingredients here********* carrinhoDeCompras.pizzas.add(pizza2); ****Can't add to the list carrinhoDeCompras. Compartilhar este post Link para o post Compartilhar em outros sites
reebr 94 Denunciar post Postado Março 24, 2016 Aquele "contaIngredientes" é desnecessário. Você pode simplesmente verificar se o map está vazio antes de adicioná-lo ao carrinho de compras: http://docs.oracle.com/javase/8/docs/api/java/util/Map.html#isEmpty-- Mas como você tem ele, pode fazer assim: if(pizza1.contaIngrediente > 0){ carrinhoDeCompras.pizzas.add(pizza1); } Compartilhar este post Link para o post Compartilhar em outros sites