Verificar lista vazia

13 respostas
C
Olá pessoal, estou com o seguinte problema: Tenho um método que me retorna uma lista de string, e tenho outro método que faz a validação e salva os registros. São esses dois métodos: Lista
public List<Carroceria> carrocerias(String descricao) {
		return carroceriaService.getCarroceriaWithDescricao(descricao);
	}
Salvar
public void finishAddCarreta() {

		Carreta cta = carretaService.getByDescricao(carreta.getDescricao(), carreta.getPlaca());

		if (carreta.getCodigo() == null && cta != null) {
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro:", "Descrição ou Placa já cadastrada"));
		} else {
			carretaService.addCarreta(carreta);
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso:", "Registro salvo com sucesso"));
		}
	}

Como faço para verificar se aquele método de lista esta retornando uma lista vazia aqui no método salvar?

13 Respostas

brunogalvaods
if(lista.size() == 0){
     System.out.println("Lista vazia!");
}else{
     System.out.println("Lista preenchida!");
}

vê te ajuda em alguma coisa.

C

Já tinha pensado em fazer assim, mas no meu pegaria o nome do método? Assim:

if(carrocerias.size() == 0){ System.out.println("Lista vazia!"); }else{ System.out.println("Lista preenchida!"); }
Nao da amigo…

E
List<Carroceria> carrocerias = this.carrocerias("descCarroceiria");

if ( carrocerias.isEmpty()){
    System.out.println("Lista vazia!"); 
}else{
    System.out.println("Lista preenchida!"); 
}
Rossithiago

Faz o que o ErickMacedo fez, que dá certo.

williamdasflores

Como nosso amigo ErickMacedo falou,
use o método isEmpty(), este método returna true se não houver elementos na lista.

Fexx

Como havia dito em cima usa o metodo isEmpty().

C

Vou me explicar melhor. Tenho um p:autoComplete que quando clico nele aparece todas as carrocerias já cadastradas, mas o problema é quando eu digito nesse combo, ele me deixa digitar qualquer coisa lá, mesmo nao tendo cadastrado, entende?
Dai queria fazer uma validação pra isso nao acontecer.
XHTML

<p:autoComplete id="carroceria" value="#{carretaMBean.carreta.carroceria}" completeMethod="#{carretaMBean.carrocerias}" var="carroceria" itemValue="#{carroceria}" itemLabel="#{carroceria.descricao}" dropdown="true" converter="#{carretaMBean.converterCarroceria}"/>

C

Tenho que comparar o que eu digitei no combo com o que tem no banco. Como faço isso?

E

Cara, da um contains na sua lista passando o objeto carroceria e implementa o equals hashcode incluindo o campo descrição.
ou apenas recupera os e da um equals na sua descrição

C

Assim:

if(carrocerias.contains(getCarroceria())) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro:", "Preencha os campos corretamente"));
fazer o equals e hashcode do que?

E

O contains usa o equals para poder saber a condição de comparação que você deseja Ex: vc considera que uma carroceria é igual a outra pela sua descrição? ou pela sua placa? com o equals você define isto , desta forma sujiro quevocê estude esses dois métodos equals e hashcode.

M
(list.size() <1)
E

[removido]

Criado 1 de fevereiro de 2012
Ultima resposta 15 de mar. de 2013
Respostas 13
Participantes 8