3
respostas

Duvida em usar o isEmpty

Gostaria de usar o isEmpty no método Localizar e no método remover,estou tentando colocar ,mas acho que está da forma errada pois não funciona,só consegui coloca-lo no imprimir,quem poder me ajudar eu ficarei grato. package ProjetoFinal;

import java.util.ArrayList; import java.util.Scanner;

public class Camisa extends Produto { String tamanho, tipodemanga;

Camisa() {
}

Camisa(String nome, String marca, String cor, double peso, String tamanho, String tipodemanga) {
    this.nome = nome;
    this.marca = marca;
    this.cor = cor;
    this.peso = peso;
    this.tamanho = tamanho;
    this.tipodemanga = tipodemanga;

}
public Camisa cadastrar(Scanner ler) {
    System.out.println("Digite o nome da camisa:");
    nome=ler.nextLine();
    System.out.println("Digite a marca da camisa:");
    marca=ler.nextLine();
    System.out.println("Digite a cor da camisa:");
    cor=ler.nextLine();
    System.out.println("Digite o peso da camisa:");
    peso=Double.parseDouble(ler.nextLine());
    System.out.println("Digite o tamanho em cm:");
    tamanho=ler.nextLine();
    System.out.println("Tipo de manga:");
    tipodemanga=ler.nextLine();

    Camisa c1 = new Camisa(nome, marca, cor, peso, tamanho,tipodemanga);
    System.out.print("\nCamisa cadastrada com sucesso.");
    return c1;
}
    public int localizarCamisa(ArrayList<Camisa> c1, String nome) {

         int cont = 0;
         for(Camisa c:c1) {

             if (c.nome.equals(nome)) {
                 return cont;

             }
             cont++;
         }

         return -1;

}

public void Imprimir(ArrayListc1) { if(c1.isEmpty()) { System.out.print("\nA lista esta Vazia");

 }else {
     for (Camisa x :c1) {
         System.out.println("Imprimido com sucesso");
         System.out.print(" \n Nome:" +x.nome+ 
                          ",\t cor:" + x.cor +
                          ",\t Marca: " + x.marca+ 
                          ",\tPeso:"+ x.peso +
                          ",\tTamanho:"+x.tamanho+
                          ",\tTipodemanga" +x.tipodemanga);
     }
 }

 System.out.println(); 

}

public void remover(ArrayList lista,String nome) {

     for (int i=0;i<lista.size();i++) {
    if(nome.equals(nome)) {
        lista.remove(i);

}}}}

3 respostas

Boa tarde, Vitor! Como vai?

Eu entendi que vc quer usar o isEmpty(), mas o que eu não consegui entender é de que maneira vc quer utilizá-lo! O que vc gostaria de fazer com ele?

Pergunto isso pq, por exemplo, na método remover() não seria necessário utilizar o isEmpty() pq vc só entra no laço for caso a lista tenha ao menos 1 item, ou seja, caso não esteja vazia. E no método localizaCamisa() acontece a mesma coisa! O código só irá entrar no for caso a lista não seja vazia. Então aparentemente o uso do isEmpty() não é necessário, mas pra afirmar isso com certeza eu preciso saber exatamente o que vc quer fazer.

Eu fiz um menu,eu gostaria de quando eu apertasse por exemplo o sete do menu que é o remova uma camisa ele disesse que a lista está vazia já que não cadastrei nenhuma camisa,entende?e fazer o mesmo pro localizar Segue o resto do código pra vc entender o menu ,falta o acessório mas acho que com o menu principal vc entenderá o que estou falando package ProjetoFinal;

import java.util.ArrayList; import java.util.Scanner;

public class QuestãoMenu { public static ArrayList c1 = new ArrayList(); public static ArrayList<Acessórios> Ac = new ArrayList<Acessórios>();

public static void main(String[] args) { Scanner ler = new Scanner(System.in); Camisa c = new Camisa(); Acessórios p = new Acessórios(); int indice; String op,nome;

do { op = menu(ler); switch (op) { case "1": c1.add(c.cadastrar(ler)); break; case "2": Ac.add(p.cadastrar(ler)); break; case"3": System.out.println("Digite o nome para localizar camisa:"); nome=ler.nextLine(); indice=c.localizarCamisa(c1, nome); if(indice>=0) { c1.get(indice); System.out.println("Localizado" + " " + nome); }else { System.out.println("Não localizado"); }

     break;

case"4":
    System.out.println("Digite o nome para localizar acessório:");
    nome=ler.nextLine();
    indice=p.localizarAcessórios(Ac, nome);
    if(indice>=0) { 
        Ac.get(indice);
         System.out.println("Localizado" + " "   +    nome);
    }else {
            System.out.println("Não localizado");
        }

     break;

case"5":
     c.Imprimir(c1);
break;
case"6":
     p.Imprimir(Ac);
break;
case "7":
    System.out.print("Digite o nome para remover uma camisa ");
    nome = ler.nextLine();
    indice = c.localizarCamisa(c1, nome);
    if(indice >=0 ) {
    c1.remove(indice);
    System.out.println("Removido com sucesso");
    }else {
        System.out.print(" não Localizada: ");    
    }

    break;
case "8":
    System.out.print("Digite o nome para remover um acessório ");
    nome = ler.nextLine();
    indice = p.localizarAcessórios(Ac, nome);
    if(indice >=0 ) {
    Ac.remove(indice);
    System.out.println("Removido com sucesso");
    }else {
        System.out.print(" Não Localizada: ");    
    }

    break;

case "9":
    System.out.println("Fim do programa");
    break;




}}while (!(op.equals("9")));

}

public static String menu(Scanner ler) {

    String op;
    do {
        System.out.println("\nMenu");
        System.out.println("1 - Cadastrar Camisa");
        System.out.println("2 - Cadastrar Acessórios");
        System.out.println("3-  Localize uma camisa");
        System.out.println("4-  Localize um acessórios");
        System.out.println("5-  Imprima camisa");
        System.out.println("6-  Imprima acessórios");
        System.out.println("7-  Remova uma camisa");
        System.out.println("8-  Remova um acessório");
        System.out.println("9-  Para sair");
        op = ler.nextLine();
    } while  (!(op.equals("1") | op.equals("2") | op.equals("3") |op.equals("4") | op.equals("5") |op.equals("6") |op.equals("7") |op.equals("8")|op.equals("9"))); 
    return op;

}}

Ah sim, agora entendi! Vc pode fazer assim:

public void remover(ArrayList lista,String nome) {
     if (lista.isEmpty()) {
          System.out.println("Não há nenhuma camisa na lista!");
     } else {
          // restante do código que já existe.
     }
}

public int localizarCamisa(ArrayList<Camisa> c1, String nome) {
     if (c1.isEmpty()) {
          System.out.println("Não há nenhuma camisa na lista!");
     } else {
          // restante do código que já existe.
     }

     // dar o retorno inteiro como a assinatura do método requer.
}

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos