Poderíamos usar um exemplo bem simples criando uma List<String> ou List<Integer>, mas você provavelmente vai se deparar com esse mesmo problema utilizando objetos. O objetivo aqui é remover todos os produtos, de uma lista, que possuem a quantidade igual a zero.
Primeiramente crie uma classe produto. Essa classe implementa a interface Comparable<Produto> pois a utilizamos em nossa vídeo aula. O mais importante aqui é fazer o @Override do método equals() e hashCode(), uma vez que estamos trabalhando com coleções.
/** * Created by William Suane on 9/6/2016. */ public class Produto implements Comparable<Produto>{ private String serialNumber; private String nome; private Double preco; private int quantidade; public Produto(String serialNumber, String nome, Double preco, int quantidade) { this.serialNumber = serialNumber; this.nome = nome; this.preco = preco; this.quantidade = quantidade; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Produto produto = (Produto) o; return serialNumber != null ? serialNumber.equals(produto.serialNumber) : produto.serialNumber == null; } @Override public int hashCode() { return serialNumber != null ? serialNumber.hashCode() : 0; } @Override public String toString() { return "Produto{" + "serialNumber='" + serialNumber + '\'' + ", nome='" + nome + '\'' + ", preco=" + preco + ", quantidade=" + quantidade + '}'; } public void setPreco(Double preco) { this.preco = preco; } public int getQuantidade() { return quantidade; } public void setQuantidade(int quantidade) { this.quantidade = quantidade; } public String getSerialNumber() { return serialNumber; } public void setSerialNumber(String serialNumber) { this.serialNumber = serialNumber; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public double getPreco() { return preco; } public void setPreco(double preco) { this.preco = preco; } @Override public int compareTo(Produto outroObjeto) { return this.preco.compareTo(outroObjeto.getPreco()); } }
Agora crie uma classe chamada IteratorTest. Nessa classe nós criamos e preenchemos uma lista de produtos e percorremos essa lista utilizando um Iterator. Dentro do while checamos se a quantidade do produto é zero, se for nós removemos da lista.
import java.util.Iterator; import java.util.LinkedList; import java.util.List; /** * Created by William Suane on 9/8/2016. */ public class IteratorTest { public static void main(String[] args) { List<Produto> produtos = new LinkedList<>(); Produto produto1 = new Produto("123", "Laptop Lenovo", 2000.0, 10); Produto produto2 = new Produto("321", "Picanha", 10d, 10); Produto produto3 = new Produto("879", "Teclado Razer", 1000.0, 0); Produto produto4 = new Produto("012", "Samsung galaxy S7 64Gb", 3250.5, 0); produtos.add(produto1); produtos.add(produto2); produtos.add(produto3); produtos.add(produto4); Iterator<Produto> produtoIterator = produtos.iterator(); while (produtoIterator.hasNext()) { if (produtoIterator.next().getQuantidade() == 0) { produtoIterator.remove(); } } System.out.println(produtos.size()); } }
É isso ai galera, se quiser aprender mais sobre Java temos um SENHOR curso no Youtube
Nenhum comentário:
Postar um comentário