-
Notifications
You must be signed in to change notification settings - Fork 205
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
Reference Method #15
Comments
Muito bom! É treinando que se aprende! Há várias maneiras para se obter o mesmo resultado. Ah, obrigada pelo feedback e muito sucesso nos estudos. Estou à disposição! <3 |
Continuando com o estudo, tentei fazer com a classe que ordena tudo Trabalhar com a Classe Anônima, apanhei mas saio. /**
* Ordenta a lista comparando pelo nome-> idade -> cor.
*/
//uso da classe Anõnima
meusGatosOrdem.sort(Comparator.comparing(new Function<Gato, String>() {
@Override
public String apply(Gato gato) {
if ((gato.getNome().equalsIgnoreCase(gato.getNome())))
return gato.getNome();
if ((gato.getIdade() == gato.getIdade()))
return gato.getCor();
return gato.getCor();
}
}));
//usando Labda
meusGatosOrdem.sort(Comparator.comparing((Gato gato) ->
if ((gato.getNome().equalsIgnoreCase(gato.getNome())))
return gato.getNome();
if ((gato.getIdade() == gato.getIdade()))
return gato.getCor();
return gato.getCor();
}
}));
//Referencia do Método (Reference Method)
for (Gato g : meusGatosOrdem) {//exibe a lista
System.out.println(g.getNome() + " " + g.getIdade() + " " + g.getCor());
} Grato!!! |
Essa é uma forma de fazer quando você precisa ordenar por mais de um atributo: public class Main {
public static void main(String[] args) {
List<Gato> meusGatos = new ArrayList<>() {{
add(new Gato("Joh", 12, "amarelo"));
add(new Gato("Joh", 18, "preto"));
add(new Gato("Simba", 6, "tigrado"));
}};
//Objeto comparator que faz a comparação de acordo com a ordem dos atributos.
Comparator<Gato> comparator = Comparator.comparing(Gato::getNome)
.thenComparing(Gato::getIdade)
.thenComparing(Gato::getCor);
//A chamada dessa classe Collections com o método sort, é quem faz a ordenação.
Collections.sort(meusGatos, comparator);
meusGatos.forEach(g -> System.out.println(g.getNome() + " " + g.getIdade() + " " + g.getCor()));
}
}
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 void setNome(String nome) {
this.nome = nome;
}
public Integer getIdade() {
return idade;
}
public void setIdade(Integer idade) {
this.idade = idade;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
@Override
public String toString() {
return "Gato{" +
"nome='" + nome + '\'' +
", idade=" + idade +
", cor='" + cor + '\'' +
'}';
}
} Nas aulas eu explico beeem explicado como transformar Classe anônima em Lambda. Dá uma olhadinha na aula novamente? |
Obrigado |
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.
Muito Grato.
The text was updated successfully, but these errors were encountered: