-
Notifications
You must be signed in to change notification settings - Fork 215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Collections - Exemplo Ordenação Set #3
Comments
Isso, falha minha. kkkk System.out.println("\n-- Ordem aleatória --");
Set<Serie> minhasSeriesOrdemAleatoria = new HashSet<>() {{
add(new Serie("got", "fantasia", 60));
add(new Serie("dark", "drama", 60));
add(new Serie("that '70s show", "comédia", 25));
}};
minhasSeriesOrdemAleatoria.forEach(serie -> System.out.println(serie));
System.out.println("\n-- Ordem Inserção --");
Set<Serie> minhasSeriesOrdemInsercao = new LinkedHashSet<>() {{
add(new Serie("got", "fantasia", 60));
add(new Serie("dark", "drama", 60));
add(new Serie("that '70s show", "comédia", 25));
}};
minhasSeriesOrdemInsercao.forEach(serie -> System.out.println(serie));
System.out.println("\n-- Ordem Nome --");
Set<Serie> minhasSeriesOrdemNome = minhasSeriesOrdemAleatoria;
minhasSeriesOrdemNome
.stream()
.sorted(Comparator.comparing(Serie::getNome))
.collect(Collectors.toList())
.forEach(serie -> System.out.println(serie));
System.out.println("\n-- Ordem Gênero --");
Set<Serie> minhasSeriesGenero = minhasSeriesOrdemAleatoria;
minhasSeriesGenero
.stream()
.sorted(Comparator.comparing(Serie::getGenero))
.collect(Collectors.toList())
.forEach(serie -> System.out.println(serie));
System.out.println("\n-- Ordem Tempo de Episódio --");
Set<Serie> minhasSeriesEpisodio = minhasSeriesOrdemAleatoria;
minhasSeriesEpisodio
.stream()
.sorted(Comparator.comparing(Serie::getTempoEpisodio))
.collect(Collectors.toList())
.forEach(serie -> System.out.println(serie)); |
Certo, mas e seu eu quiser manter a execução da ordenação Nome/Genero/TempoEpisodio que vc fez? Obg querida! |
Por nada!
Eita, acabei esquecendo: System.out.println("\n-- Ordem Nome/Gênero/TempoEpisodio --");
Set<Serie> minhasSeriesNomeGeneroTempoEpiodio = new HashSet<>() {{
add(new Serie("got", "fantasia", 60));
add(new Serie("dark", "drama", 60));
add(new Serie("that '70s show", "comédia", 25));
}};
minhasSeriesNomeGeneroTempoEpiodio
.stream()
.sorted((s1, s2) -> {
int nome = s1.getNome().compareToIgnoreCase(s2.getNome());
if(nome != 0) return nome;
int genero = s1.getGenero().compareToIgnoreCase(s2.getGenero());
if (genero != 0) return genero;
return Integer.compare(s1.getTempoEpisodio(), s2.getTempoEpisodio());
})
.collect(Collectors.toList())
.forEach(serie -> System.out.println(serie));
} |
Camila, comparando o Exemplo_Ordenacao com o ExercicioProposto2, posso concluir que o uso de getters e setters é opcional para quaisquer tipos de interface de lista? |
Nem sempre. Getters e setters não são obrigados. Vai depender do encapsulamento. |
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.
The text was updated successfully, but these errors were encountered: