<p><img src="https://i.imgur.com/D01Fpky.png" alt="" title="Entre no nosso site e veja nossos cursos"></p> <h1> <img class="emoji" alt=":coffee:" src="https://cdn.jsdelivr.net/npm/@hackmd/emojify.js@2.1.0/dist/images/basic/coffee.png"> Java OO Aula 6 </h1> O objetivo deste curso é abordar os principais conceitos, empregar as principais estruturas de dados, e trabalhar utilizando as principais boas práticas de Programação Orientada a Objetos [POO] em **Java**. <h2 id="-Tema-da-aula" data-id="-Tema-da-aula"><a class="anchor hidden-xs" href="#-Tema-da-aula" title="-Tema-da-aula"><span class="octicon octicon-link"></span></a><img class="emoji" alt=":book:" src="https://cdn.jsdelivr.net/npm/@hackmd/emojify.js@2.1.0/dist/images/basic/book.png"> <span> Tema da aula:</span></h2><span><p>Nessa sexta aula, abordamos alguns t&oacute;picos especias em Java:</p> <p>. Constru&iacute;mos um <strong>HashMap</strong> e mostramos como inserir e listar dados;</p> <p>. Mostramos como podemos gerar identificadores para objetos usando <strong>Math.random()</strong> e <strong>UUID</strong>;</p> <p>. Criamos uma lista de Produtos, <strong>ordenamos</strong> essa lista de acordo com qualquer crit&eacute;rio que seja do nosso interesse, usando <strong>stream</strong> e <strong>Comparator,</strong> e <strong>salvamos essa lista em um arquivo texto u</strong>sando os m&eacute;todos de <strong>FileWriter;</strong></p> <p>. Utilizamos <strong>try/catch&nbsp;</strong>no controle do acesso ao arquivo texto que vamos utilizar para salvar a lista de produtos.</p> <br> </span> <h4> Estrutura do projeto depois de finalizado </h4> ![](https://i.imgur.com/lkW1pZC.jpg) <h3> MapaTeste.java </h3> ```java= package entity; import java.util.HashMap; import java.util.Map; import java.util.UUID; public class MapaTeste { public static Integer gerarChave() { int chave = (int) (Math.random() * 10000); Integer iChave = Integer.valueOf(chave); return iChave; } public static void main(String[] args) { Map<Integer, String> mapa = new HashMap<Integer, String>(); mapa.put(MapaTeste.gerarChave(), "Produto01"); mapa.put(MapaTeste.gerarChave(), "Produto02"); mapa.put(MapaTeste.gerarChave(), "Produto03"); mapa.put(MapaTeste.gerarChave(), "Produto04"); mapa.put(1, "Produto10"); mapa.put(2, "Produto20"); mapa.put(3, "Produto30"); mapa.put(4, "Produto40"); System.out.println(mapa.get(4)); System.out.println(mapa.get(2)); System.out.println("==="); mapa.entrySet().stream().forEach(System.out::println); System.out.println("* * *"); Map<UUID, String> mapaUUID = new HashMap<UUID, String>(); mapaUUID.put(UUID.randomUUID(), "UUID1"); mapaUUID.put(UUID.randomUUID(), "UUID2"); mapaUUID.put(UUID.randomUUID(), "UUID3"); mapaUUID.entrySet().stream().forEach(System.out::println); } } ``` <h5> Rodando o método main, temos: </h5> ```= Produto40 Produto20 === 2496=Produto04 1=Produto10 2=Produto20 3=Produto30 4=Produto40 7205=Produto01 4137=Produto02 7453=Produto03 * * * 9a05ca7a-6327-4eec-876d-6dc246df4530=UUID2 b2aa42c6-e7a0-4648-ad35-9e0ee1f58ee7=UUID3 a3b37c6a-5422-4816-9cf3-3e926de51cc7=UUID1 ``` <h3> Produto.java </h3> ```java= package entity; public class Produto { private Integer id; private String nome; private Double preco; public Produto() { } public Produto(Integer id, String nome, Double preco) { this.id = id; this.nome = nome; this.preco = preco; } @Override public String toString() { return "Produto [id=" + id + ", " + "nome=" + nome + ", preco=" + preco + "]"; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } 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; } public static Integer gerarChave() { int chave = (int) (Math.random() * 10000); Integer iChave = Integer.valueOf(chave); return iChave; } } ``` <h3> GravarProduto.java </h3> ```java= package control; import java.io.FileWriter; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; import entity.Produto; public class GravarProduto { { lst = new ArrayList<>(); } List<Produto> lst; FileWriter fw; public List<Produto> getLst() { return lst; } public void setLst(List<Produto> lst) { this.lst = lst; } public void open() throws Exception { fw = new FileWriter("C:\\JavaOO" + "\\eclipse-workspace\\produtos.log", true); } public void write(List<Produto> l) throws Exception { for (Produto p : l) { fw.write(p + "\n"); } fw.write("\n===============================\n"); fw.flush(); } public void close() throws Exception { fw.close(); } public void inserirLista(Produto... p) { for (Produto x : p) { this.lst.add(x); } } public void ordenarLista() { // this.lst = this.lst.stream().sorted(Comparator //.comparingDouble(Produto::getPreco).reversed()) // .collect(Collectors.toList()); this.lst = this.lst.stream().sorted(Comparator .comparing(Produto::getNome)) .collect(Collectors.toList()); } public static void main(String[] args) { Produto p1 = new Produto(100, "hiphone", 300.); Produto p2 = new Produto(Produto.gerarChave(), "razus", 299.); Produto p3 = new Produto(Produto.gerarChave(), "xan'xun", 399.); Produto p4 = new Produto(10, "sonhy", 900.); GravarProduto gp = new GravarProduto(); gp.inserirLista(p1, p2, p3, p4); gp.ordenarLista(); try { gp.open(); gp.write(gp.getLst()); gp.close(); System.out.println("Dados Gravados..."); } catch (Exception ex) { ex.printStackTrace(); } } } ``` <h5> Rodando o método main, temos: </h5> <h3> produtos.log </h3> ```= Produto [id=100, nome=hiphone, preco=300.0] Produto [id=694, nome=razus, preco=299.0] Produto [id=10, nome=sonhy, preco=900.0] Produto [id=5385, nome=xan'xun, preco=399.0] =============================== Produto [id=100, nome=hiphone, preco=300.0] Produto [id=3275, nome=razus, preco=299.0] Produto [id=10, nome=sonhy, preco=900.0] Produto [id=1937, nome=xan'xun, preco=399.0] =============================== ``` <span></span></p><blockquote style="border-left-color: red;"> <p><span class="color" data-color="red"></span><span> </span><small><i class="fa fa-user"></i> Prof Fernando Gomes - fernandojnr@gmail.com</small></p>