Comments (7)
Então @Saul-Medeiros, pelo que pude perceber o IF acaba realizando a conferência quando o número possui apenas 1 dígito, não sendo necessário entrar uma vez no laço do FOR e retornando ele mesmo para fazer parte da soma. Ou seja, ele acaba economizando algumas interações do FOR.
from ganhando_produtividade_com_stream_api_java.
neste caso, não passando pelo laço ele seria mais rápido 🤔? é pq na minha concepção quanto menos código vc escrever é melhor, e pra cada número que o mapForInt* for testar ele vai ser obrigado a passar por esse if e pelo próprio for.
No caso do seu código ele vai retornar o numero quando o tamanho dele for 0, ou seja inexistente. Se por via das dúvidas ainda tiver um "null" no array, acredito que poderia lançar uma exception.
from ganhando_produtividade_com_stream_api_java.
Olá, Camila. Fiquei com dúvida se a resolução esta certa. Até vi os comentarios dos outros colegas mas ainda sim não tenho certeza se segui a linha de raciocinio correta
from ganhando_produtividade_com_stream_api_java.
Olá, Camila. Fiquei com dúvida se a resolução esta certa. Até vi os comentarios dos outros colegas mas ainda sim não tenho certeza se segui a linha de raciocinio correta
Certinho, @Leticiassb. O Reduce vai passar pela lista pegando todos os números e ir somando um a um.
from ganhando_produtividade_com_stream_api_java.
Só usar o reduce:
numeros.stream().reduce(0, Integer::sum);
ou
numeros.stream().reduce(0, (n1, n2) -> n1 + n2);
from ganhando_produtividade_com_stream_api_java.
acho que vc pode remover aquele if do começo, e retornar apenas sum. Eu fiz assim
int somaDigitos = numeros.stream().mapToInt(n1 -> {
int sum = 0, length = String.valueOf(n1).length();
for (int i = 0; i < length; i++) {
sum += n1 % 10;
n1 /= 10;
}
return sum;
}).sum();
o sum retorna 0 se o numero em questão nao existir, pois o for já faz essa verificação, se o numero não existir ele passa direto pelo laço e retorna 0
from ganhando_produtividade_com_stream_api_java.
Rapaz, nem tinha parado para testar o tempo, agora fiz um teste básico com o System.currentTimeMillis(), no array que ta ali nessa descrição com e sem o if o resultado foi 0 ms. Pode ser que fique melhor sem o IF mesmo, mais legível.
Nesse exercício, como temos que somar todos os dígitos, esse IF verifica quantos dígitos tem o número e caso ele tenha apenas um (exemplo: 5) ele já retorna esse resultado devido o return, debuguei no Intellij pra ver kk. Agora no caso de algum número com mais de um dígito (exemplo: 245), ele segue para o FOR para decompor e realizar a somatório. No caso de ter um null, ele lança a exceção com ou sem o IF.
from ganhando_produtividade_com_stream_api_java.
Related Issues (20)
- Duvida no desafio 5 HOT 1
- Duvida desafio 7 HOT 9
- Duvida desafio 16 HOT 2
- Duvida Desafio 5 HOT 3
- Dúvida no Reduce HOT 3
- Dúvida desafio 3 HOT 6
- Desafio 18 HOT 4
- Desafio 14 e 17 HOT 4
- Desafio 14 HOT 3
- Dúvida desafio 4 HOT 4
- Desafio 2 HOT 2
- Dúvida desafio 7 HOT 6
- DUVIDA - ERRO NO IMPORT STREAM HOT 5
- um breve e concisa explicação sobre o código abaixo HOT 1
- Duvida Desafio 10 HOT 5
- Duvida Binary Operator HOT 6
- Desafio 7 HOT 1
- Desafio 19 HOT 1
- Desafio 11 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ganhando_produtividade_com_stream_api_java.