Skip to content
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

Dúvida desafio 3 #7

Open
dufernandess opened this issue Sep 5, 2023 · 6 comments
Open

Dúvida desafio 3 #7

dufernandess opened this issue Sep 5, 2023 · 6 comments

Comments

@dufernandess
Copy link

Oi, Cami, tudo bem?

Estou resolvendo os desafios e fiquei na dúvida em como eu posso resolver o desafio 3.
"Desafio 3 - Verifique se todos os números da lista são positivos:"

Eu queria fazer um comparador, item por item da lista, e vir retornando "Verdadeiro" ou "Falso", mas estou com dificuldades.

Como eu posso fazer para ele fazer o teste lógico e vir retornando o resultado booleano, item por item?

Poderia me ajudar?

@cami-la
Copy link
Collaborator

cami-la commented Sep 10, 2023

Olá, @dufernandess. Tudo bem sim e por aí? (:

Então, você pode fazer da seguinte forma:

List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 4, 3);

List<Integer> numerosPositivos = numeros.stream()
    .filter(num -> num > 0) //aqui você verifica se o número é positivo
    .collect(Collectors.toList()); //aqui você pega esse número e coloca em uma nova lista

System.out.println(numerosPositivos);

Veja se ajudou. (:

@dufernandess
Copy link
Author

dufernandess commented Sep 10, 2023

Oi, Cami.
Então, no caso, eu queria o stream fizesse a verificação de acordo com a condição e retornasse um valor booleano. Por exemplo, eu queria a verificação imprimisse dessa forma:

Verdadeiro
Verdadeiro
Verdadeiro
Falso
Verdadeiro
Falso

sendo cada retorno booleano referente a verificação de um número.

é possível com o stream?

@cami-la
Copy link
Collaborator

cami-la commented Sep 11, 2023

Sim, é possível. Podemos utilizar o método .map() para isso:

List<Integer> numeros = Arrays.asList(1, 2, 3, -5, -9, 0, 4, 5, 6, 7, 8, 9, 10, 5, 4, 3);

    List<Boolean> numerosPositivos = numeros.stream()
        .map(num -> num > 0) //aqui você verifica se o número é positivo
        .collect(Collectors.toList()); //aqui você pega o resultado (true or false) e coloca em uma nova lista

    System.out.println(numerosPositivos);

//saída no console
[true, true, true, false, false, false, true, true, true, true, true, true, true, true, true, true]

@dufernandess
Copy link
Author

Show! Muito obrigado!

Cami, consegue me indicar algum repositório onde posso aprender mais sobre as funcionalidades do .map?

Não tinha ficado claro que eu poderia utilizar o .map dessa forma.

Agradeço pela ajuda 🙏

@cami-la
Copy link
Collaborator

cami-la commented Sep 11, 2023

Eita, pior que não tenho nenhum material agora para indicar. :(

Basicamente, utilizamos o .map() quando precisamos temos uma coleção de um tipo (que no nosso caso foi de Integer) e queremos transformar em outro tipo (que no nosso caso foi de Boolean).

Eu gosto muito de artigos, vou te sugerir um que fala sobre Stream: https://www.geeksforgeeks.org/stream-map-java-examples/

E por nada, precisando fico à disposição! Bons estudos para nós! (:

@dufernandess
Copy link
Author

Muito obrigado, Cami

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants