cami-la / curso-dio-intro-collections Goto Github PK
View Code? Open in Web Editor NEWResolução dos exercícios propostos: CURSO INTRODUTÓRIO COLLECTIONS FRAMEWORK JAVA.
Home Page: https://web.digitalinnovation.one/home
Resolução dos exercícios propostos: CURSO INTRODUTÓRIO COLLECTIONS FRAMEWORK JAVA.
Home Page: https://web.digitalinnovation.one/home
Boa noite Cami, tudo bem?
Executando o exercício realizado em aula percebi que poderia substituir esta parte do código por um método pronto:
System.out.println("Remova as notas menores que 7 e exiba a lista: ");
Iterator<Double> iterator1 = notas.iterator();
while(iterator1.hasNext()) {
Double next = iterator1.next();
if(next < 7) iterator1.remove();
}
System.out.println(notas);
Método que utilizei:
System.out.println("Remova as notas menores que 7 e exiba a lista: ");
notas.removeIf(next -> next < 7);
System.out.println(notas);
O que deixou o método mais limpo e enxuto. Em aula você havia comentado que não existia um método pronto para este tipo de remoção. Seria uma atualização das novas versões? No caso estou utilizando a versão Java SE 17 LTS.
Na resolução para o exercicio 01 da aula de Lists , na linha 32, o mês vai ser informado baseado no index da temperatura na lista de temperaturas. O problema dessa solução é se o usuario inserir o mesmo valor de temperatura em mais de 1 mês, vai retornar somente o primeiro mês com a temperatura indicada.
Gostaria de saber porque não não posso usar o LinkedHashSet sem usar o HashSet antes?
Ainda em ordem de inserção, tentei fazer do modo abaixo, porém, deu erro.
public static void main(String[] args) {
Set<minhasLinguagensFavoritas> linguagensFavoritas = new LinkedHashSet<>(){{
add(new minhasLinguagensFavoritas("JavaScript", 1996, "VScode"));
add(new minhasLinguagensFavoritas("Java", 1991, "Intellij"));
add(new minhasLinguagensFavoritas("HTML", 1991, "VScode"));
}};
System.out.println("Ordem de Inserção: ");
for (String linguagens: linguagensFavoritas) {
System.out.println(linguagens);
}
}
Boa tarde, tudo bom ?
Esse exercício resolvi ele dessa forma, gostaria de feedback sobre ele se esta correto se tem algum ponto para ser melhorado
Scanner leitor = new Scanner(System.in);
List temperaturas = new ArrayList<>();
String[] messes = new String[] {
"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho"
};
for (int i = 0; i < messes.length; i++) {
System.out.print("Informe a temperatura de " + messes[i] + ": ");
temperaturas.add(leitor.nextDouble());
}
System.out.println("\nTodas as temperaturas: ");
temperaturas.forEach(temp -> System.out.println(temp));
System.out.println("\nCalculando media: ");
Double media = temperaturas
.stream()
.reduce(0d, (total, element) -> total + element) / messes.length;
System.out.println(media);
System.out.println("\nMeses com as temperaturas acima da média: ");
Iterator<Double> iterator = temperaturas.iterator();
while (iterator.hasNext()) {
Double temperatura = iterator.next();
if (temperatura >= media) {
System.out.println(messes[temperaturas.indexOf(temperatura)] + " - " + temperatura + "oC");
}
}
Oiii Cami! Apenas avisando que está escrito errado no system.out.println, acredito que possa confundir algum aluno futuramente. O correto seria "pares", não "ímpares". Ou então manter "ímpares" e mudar no código para != ao invés do ==, e o nome da variável para somaDosNumerosImpares.
Localização do código:
https://github.com/cami-la/curso-dio-intro-collections/blob/master/src/br/com/dio/collection/streamAPI/ExerciciosStreamAPI.java
int somaDosNumerosPares = numerosAleatoriosInteger.stream()
.filter(i -> (i % 2 == 0))
.mapToInt(Integer::intValue)
.sum();
System.out.println("Pegue apenas os números ímpares e some: " + somaDosNumerosPares);
Olá Camila,
Pode por favor me ajudar?
Ao rodar o programa ele apresenta o seguinte erro:
Erro: Não foi possível localizar nem carregar a classe principal com.exercicioordenacaolist.ExemploOrdenacaoList
Causada por: java.lang.ClassNotFoundException: com.exercicioordenacaolist.ExemploOrdenacaoList
Abaixo o código
package com.exercicioordenacaolist;
/*Dadas as seguintes informações sobre meus gatos, crie uma lista
e ordene esa lista exibindo:
(nome - idade - cor);
Gato 1 = nome: Jon, idade: 18, cor: preto
Gato 2 = nome: Simba, idade: 6, cor: tigrado]
Gato 3 = nome: Jon, idade: 12, cor: amarelo
*/
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
public class ExemploOrdenacaoList {
public static void main(String[] args) {
List<Gato> meusGatos = new ArrayList<>(){{
add(new Gato("Jon", 12, "preto"));
add(new Gato("Simba", 6, "tigrado"));
add(new Gato("Jon", 18, "amarelo"));
}};
System.out.println("--\tOrdem de Inserção\t--");
System.out.println(meusGatos);
System.out.println("--\tOrdem de aleatória\t--");
Collections.shuffle(meusGatos);
System.out.println(meusGatos);
System.out.println("--\tOrdem Natural (Nome)\t--");
}
}
class Gato {
private String nome;
private Integer idade;
private String cor;
public Gato(String nome, Integer idade, String cor) {
this.nome = nome;
this.idade = idade;
this.cor = cor;
}
public String getNome() {
return nome;
}
public Integer getIdade() {
return idade;
}
public String getCor() {
return cor;
}
@Override
public String toString() {
return "{" +
"nome='" + nome + '\'' +
", idade=" + idade +
", cor='" + cor + '\'' +
'}';
}
}
Camila, boa tarde! Eu não consegui assimilar este exercício, mesmo refazendo baseado na sua solução. Tu poderias me explicar tua lógica, mostrando ao menos outra opção no uso de métodos e funções, principalmente a partir do uso do Map em diante?
Professora, observei que default do switch ele nunca vai ser executado, pq ele só sera executado se entrar na condição de verificar se a temperatura é maior que a media e o count ser diferente dos casos mencionados. Quando o count for = 6 , o laço não executa novamente.
Bom dia, estou tentando fazer um sorteador de itens (coisa de rpg rsrsrs)
consegui fazer o Intellij ler o arquivo .txt, ele fez o sorteio e mostrou o numero, porem eu queria que ele mostrasse oq esta escrito naquele numero(naquela linha) e não estou conseguindo fazer isso pois o numero é um int e a leitura necessita de uma String.
poderia me ajudar???
aqui esta o código.
obs: o arquivo txt que ele esta lendo esta no final do codigo é o itens.txt
package ItensMagicos;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Random;
public class Main {
public static void main(String[] args) throws IOException {
int item;
Path path = Path.of("C:\\Users\\Bruno\\Downloads\\itens.txt");
Random random = new Random();
item = random.nextInt(919);
List<String> strings = Files.readAllLines(path);
for (String ItensMagicos : strings) {
System.out.println(ItensMagicos);
}
System.out.println("Voce encontrou um item, veja o item " + item);
}
}
Oi Camila, tudo bem? estou fazendo o exercício 1 da aula de collections, e me bateu uma dúvida quando utilizo classe para criar o arraylist, eu consigo trocar a string do mes: "1" para mes: "janeiro" utilizando o camparator?
Se puder me dar uma luz agradeço muito!
public class Temperatura {
public static void main(String[] args){
List tempo = new ArrayList<>(){{
add(new ListaTempo("1",12.0));
add(new ListaTempo("2",23.0));
add(new ListaTempo("3",3.0));
add(new ListaTempo("4",21.0));
add(new ListaTempo("5",10.0));
add(new ListaTempo("6",30.0));
}};
System.out.println("Temperaturas 6 primeiros meses: " + tempo);
//Somar temperaturas e fazer média dos 6 meses
System.out.print("Média das temperaturas dos últimos 6 meses: ");
Iterator<ListaTempo> iterator = tempo.iterator();
Double soma = 0d;
while(iterator.hasNext()){
Double next = iterator.next().getTemperatura();
soma += next;
}
Double media = soma / tempo.size();
System.out.print(media);
//Mostra temperaturas acima da média
System.out.println("\nTemperaturas acima da média " + media + " são: " );
Iterator<ListaTempo> iterator1 = tempo.iterator();
while(iterator1.hasNext()){
Double next = iterator1.next().getTemperatura();
if(next < media) iterator1.remove();
}
System.out.println(tempo);
//Mostrar Meses por extenso em que temperaturas ocorreram
gostaria de fazer aqui uma troca de mês 1 para janeiro...mas não sei se da forma que optei por fazer o exercício, é possível...
}
}
Oi Camila, boa tarde! Estou com dúvidas no Exemplo que resolveu sobre Set. Antes de dizer a dúvida, percebi que na linha 49 do seu código, você pede algo que já resolveu (Ordem natural por Tempo Episódio, o que é o mesmo que nos pediu, rsrs), e por isto achei interessante tentar executar a ordem por Nome.
A minha solução está colocada entre as linhas 44 e 54 (comentadas), no código https://github.com/natan20200679/Java/blob/master/Collections/src/Set/Exemplo_Ordenacao.java, e que não estão resolvidas porque não consegui resolver, rsrs. Tu podes me fornecer pelo menos alguma dica de solução?! Tentei resolver aproveitando as estruturas prontas no restante do código.
Olá Camila, tudo bem? Obrigada pelas aulas ❤️
Na aula de Lists - Ordenação de elementos em uma coleção List - exemplos dos Gatos:
Você criou um "Comparable Nome" e depois criou "Comparator para Cor e Idade".
Você dizia na aula que: "como criou um Comparable para Nome, para os outros tinha que ser Comparator".
Significa que, só pode haver 1 Comparable enquanto pode haver vários Comparators num mesmo programa?
Agradeço
System.out.println("\nExiba o terceiro modelo adicionado: ");
System.out.println(carrosPopulares);
int cont = 0;
for (String key : carrosPopulares.keySet()) {
cont++;
if (cont == 3) System.out.println(key+ " -> "+carrosPopulares.get(key));
}
Não poderia ser assim?
Boa noite, clonei o repositorio só que está gerando erro, minha verão do java é a jdk 8.
Até tentei resolver mas tenho pouco conhecimento.
Fazendo o curso pelo bootcamp GFT Quality Assurance #1
List meusGatos = new ArrayList<>(){{ ( Replace ' <>' with explicit type arguments )
add(new Gato("Jon", 12, "preto"));
add(new Gato("Simba", 6, "tigrado"));
add(new Gato("Jon", 18, "amarelo"))
erro:
C:\IdeaProjects\curso-dio-intro-collections\src\br\com\dio\collection\list\ExemploOrdenacaoList.java:20:45
java: cannot infer type arguments for java.util.ArrayList
reason: cannot use '<>' with anonymous inner classes
Olá!!!
Muito Obrigado por sua disponibilidade em ensinar.
Estou aprendendo muito com duas aulas.
Estou entendendo melhor o Lambda e Refecence Method, e fiz de outra forma.
List<Gato> meusGatos = new ArrayList<>() {{
add(new Gato("Joh", 12, "amarelo"));
add(new Gato("Joh", 18, "preto"));
add(new Gato("Simba", 6, "tigrado"));
}};
// uso da classe Anônima
/*meusGatos.sort(
new Comparator<Gato>() {
@Override
public int compare(Gato g1, Gato g2) {
return Integer.compare(g1.getIdade(),g2.getIdade());
}
}
);*/
//usando Labda
// meusGatos.sort((g1, g2) -> Integer.compare(g1.getIdade(), g2.getIdade()));
//Referencia do Método (Reference Method)
meusGatos.sort(Comparator.comparingInt(Gato::getIdade));
for (Gato gato : meusGatos) {//exibe a lista
System.out.println(gato.getNome() + " " + gato.getIdade() + " " + gato.getCor());
}
Muito Grato.
Por exemplo...Quero criar uma nova lista "C" com elementos de uma lista "A" (list, linkedhashset, arraylist, hashset,...) menos os elementos de uma "B" (list, linkedhashset, arraylist, hashset,...).
Boa noite camila não achei aqui no seu repositório os exercícios de List o exercicio1 que fala sobre os meses e media e tal ,
e o exercicio2 que fala das 5 perguntas sobre um crime? Se você resolveu poderia me informar aonde encontro sua solução?
Obrigado
Boa noite Camila! Tenho dúvida quanto ao uso do tipo de variável, ou seja, quando usar, por exemplo:
int teste; ou Integer teste;
Percebi que em alguns exemplos o tipo era Double e não double. Assim, fiquei confuso de quando usar o tipo primitivo ou a versão Class dele.
Desde já, obrigado pela atenção!
Vilson da Costa de Sousa
Oi Camila, tudo bem? fiz muito diferente do seu exercício.
Obs: fiz antes de ver o seu código.
Mas o código funciona rsrsrs
package br.com.dio.collection.list;
// Minha interpretação do exercício proposto, eu não entendi que era para usar o Scanner para interação,
// inserir as temperaturas dos meses
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Ex_Proposto_temp_meses {
public static void main(String[] args) {
List<Double> mesesTemperatura = new ArrayList<Double>();
mesesTemperatura.add(30d);
mesesTemperatura.add(28d);
mesesTemperatura.add(27d);
mesesTemperatura.add(25d);
mesesTemperatura.add(23d);
mesesTemperatura.add(18d);
System.out.println("Temperatura dos seis primeiros meses do ano: ");
System.out.println(mesesTemperatura.toString());
Iterator<Double> iterator = mesesTemperatura.iterator();
Double soma = 0d;
while(iterator.hasNext()){
Double next = iterator.next();
soma += next;
}
System.out.println(" ");
System.out.println("Média semestral das temperaturas: " + Math.round(soma/mesesTemperatura.size()));
System.out.println(" ");
Iterator<Double> iterator1 = mesesTemperatura.iterator();
while(iterator1.hasNext()) {
Double next = iterator1.next();
if(next <= 25) iterator1.remove();
}
System.out.println("Temperaturas acima da média: " + mesesTemperatura);
System.out.println(" ");
System.out.println("Meses com temperatura acima da média: ");
System.out.println("1 Janeiro: " + mesesTemperatura.get(0));
System.out.println("2 Fevereiro: " + mesesTemperatura.get(1));
System.out.println("3 Março: " + mesesTemperatura.get(2));
}
}
Camila, o que eu consegui fazer até agora neste exemplo está em https://github.com/natan20200679/Java/blob/master/Collections/src/Map/Exemplo_Ordenacao.java. Tu podes por favor me fornecer uma dica de como colocar essa Ordenação pelo Número de Páginas, baseado no que já fiz? (se é que isto é possível, rsrs). Eu tentei me basear na Ordenação pelo Nome dos Livros.
Olá!
Muito obrigado pelas aulas até agora, no Bootcamp GFT Start #4 Java
Alterei o ultimo método do ExemploOrdenarList, deixando na ordem por :
nome - idade - cor
deu certo mas seria assim mesmo?
Grato!!!!
Boa noite Camila, acredito ter um leve desacerto quando ao que foi pedido é o que foi codado, na questão de "Remova todas as cores que não começam com a letra “v”: " no caso, acredito você tenha removido as que começavam a letra em questão. Só um pequeno detalhe mesmo, muito obrigado pelo curso está show de bola.
Boa tarde Camila, tudo bem?
Meu código está dando alguns erros que eu não estou entendendo. Coloquei-os comentados aqui na parte de cima. Você poderia dar uma olhada ou então me disponibilizar o código completo? Eu dei uma olhada aqui no seu Git, mas o exercício está em vários arquivos, e eu não consegui encontrar o erro. Desde já agradeço.
package br.com.dio.estudos;
import javax.sql.rowset.serial.SerialException;
import java.util.*;
/*Mensagem de erro
"C:\Program Files\Java\jdk-11.0.8\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.1.3\lib\idea_rt.jar=64376:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\Usuário\Documents\Cris\DIO\Projetos IntelliJ\desafio-dio-POO\out\production\desafio-dio-POO" br.com.dio.estudos.ExemploOrdenacaoSetEstudos
Exception in thread "main" java.lang.NoClassDefFoundError: br/com/dio/estudos/serie (wrong name: br/com/dio/estudos/Serie)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at br.com.dio.estudos.ExemploOrdenacaoSetEstudos$1.(ExemploOrdenacaoSetEstudos.java:12)
at br.com.dio.estudos.ExemploOrdenacaoSetEstudos.main(ExemploOrdenacaoSetEstudos.java:11)
Ordem Aleatoria*/
public class ExemploOrdenacaoSetEstudos {
public static void main(String[] args) {
System.out.println("Ordem Aleatoria");
Set<Serie> minhasSeries = new HashSet<>(){{
add(new Serie("E o vento levou", "drama", 120));
add(new Serie("Em algum lugar do passado","drama", 180));
add(new Serie("A lagoa Azul", "romance", 60));
}};
for (Serie serie: minhasSeries)System.out.println(serie.getNome() + "-"
+ serie.getGenero() + "-" + serie.getTempoEpisodio());
System.out.println("Ordem de Inserção");
Set<Serie>minhasSeries1 = new LinkedHashSet<>(){{
add(new Serie("E o vento levou","drama",120));
add(new Serie("Em algum lugar do passado", "drama", 180));
add(new Serie("A lagoa Azul", "romance", 60));
add(new Serie("A lagoa Azul", "romance", 120));
}};
for (Serie serie: minhasSeries1) {
System.out.println(serie.getNome() + "-"
+ serie.getGenero() + "-" + serie.getTempoEpisodio());
System.out.println("Ordem Nome/ Gênero/TempoEpisodio");
Set<Serie>minhasSeries3 = new TreeSet<>(new ComparatorNomeGeneroTempoEpisodio());
for (Serie serie3: minhasSeries3) System.out.println(serie.getNome() + "-" + serie.getGenero() + "-" + serie.getTempoEpisodio());
minhasSeries3.addAll(minhasSeries);
}
}
}
class Serie implements Comparable{
private String nome;
private String genero;
private Integer tempoEpisodio;
public Serie(String nome, String genero, Integer tempoEpisodio) {
this.nome = nome;
this.genero = genero;
this.tempoEpisodio = tempoEpisodio;
}
public String getNome() {
return nome;
}
public String getGenero() {
return genero;
}
public Integer getTempoEpisodio() {
return tempoEpisodio;
}
@Override
public String toString() {
return "{" +
"nome='" + nome + '\'' +
", genero='" + genero + '\'' +
", tempoEpisodio=" + tempoEpisodio +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Serie serie = (Serie) o;
return nome.equals(serie.nome) && genero.equals(serie.genero) && tempoEpisodio.equals(serie.tempoEpisodio);
}
@Override
public int hashCode() {
return Objects.hash(nome, genero, tempoEpisodio);
}
@Override
public int compareTo(Serie serie) {
int tempoEpisodio = Integer.compare(this.getTempoEpisodio(), serie.getTempoEpisodio());
if (tempoEpisodio!=0) return tempoEpisodio;
return this.getGenero().compareTo(serie.getGenero());
}
}
class ComparatorNomeGeneroTempoEpisodio implements Comparator{
@Override
public int compare(Serie s1, Serie s2) {
int nome = s1.getNome().compareTo(s2.getNome());
if(nome !=0) return nome;
int genero = s1.getGenero().compareTo(s2.getGenero());
if (genero !=0) return genero;
return Integer.compare(s1.getTempoEpisodio(),s2.getTempoEpisodio());
}
}
Duvida sobre os pre-requisitos do curso , no curso voce esta utilizando a versão do JDK 17 e nos pre-requistos está a 11 , não teria nenhum problema quanto a isso ?
Acredito que não , mas seria so uma dúvida mesmo . Obrigada
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.