<commit_before># Aprendendo o básico de java 9 lambdas com Star Wars

## Índice

1. Introdução
    1. Java 8 Lambdas
    2. Código Fonte
    3. Executando os exemplos
2. Filters
   1. Implementando um predicate
3. Mappers
   1. Escrevendo uma function
   2. ```flatMap``` e ```distinct```
4. Sorters
   1. Implementando um ```Comparator```
   2. Usando um ```Comparator```
   3. Revertendo uma lista
5. Collectors
   1. ```toList()``` e ```toSet```
   2. ```toMap```
6. ```toMap```
7. Conclusão

## Introdução

Star Wars é uma das franquias mais famosas deste lado do universo. Todas a trama ocorre há muito tempo atrás em uma galáxia muito muito distante. Foi responsável por gerar incontáveis fãs pelo planeta entre muitas gerações. Com oito filmes, sete da saga principal e um spin-off (até o momento de encerramento desse artigo existe um filme da saga sendo filmado e um outro spin-off) muitas coisas podem ser feitas para minerar seus dados. Esse artigo está ignorando o Star Wars Holiday Special e os filmes dos Ewoks. Sinta-se livre para inseri-los no arquivo ```all_star_wars_movie.json```.

### Java 8 Lambdas

Na linguagem de programação Java, os lambdas foram introduzidos na versão 8 e estão espalhadas pela linguagem facilitando o jeito pelo qual usamos as coisas. Verifique no pacote de IO para ver novas maneiras de carregar arquivos. Outra característica que foi introduzida com os lambdas, foram os métodos default nas interfaces. Verifique a interface Comparator, lá existem muitos métodos default. Eles serão utilizados nos exemplos desse artigo para ordenar coisas. Muitas outras coisas foram introduzidas na versão 8 para facilitar o desenvolvimento de aplicações em Java.

Esse artigo está dividido em quatro seções:

1. Filters, no qual o método ```filter``` é demonstrado.
2. Mappers, no qual os métodos ```map``` e ```flatMap``` serão discutidos
3. Sorters, no qual o método ```sort``` é usado
4. Collector, no qual o método ```collect``` é usado

### Código Fonta

Para escrever esse arquivo, foi desenvolvido um pequeno projeto. Ele está no github pronto para ser clonado. Veja a e [página do projeto](https://github.com/ortolanph/starlambdawars) e se divirta. Não se esqueça de marcar o projeto com uma estrela!

### Executando os exemplos

Leia o arquivo README.md para entender como executar os exemplos desse artigo.

## Filters

Filters significam que é desejado selecionar dados sob uma condição. Em java, condições são predicados e os mesmos estão endereçados para a interface ```java.util.function.Predicate<T>```. Há somente um método que deve ser implementado: o método ```boolean test(T t)```, que avalia a expressão e retorna um booleano. Existem ainda outros métodos default que podem ser usados ao implementar essa interface.<commit_msg>Artigo em português<commit_after># Aprendendo o básico de java 9 lambdas com Star Wars

## Índice

1. Introdução
    1. Java 8 Lambdas
    2. Código Fonte
    3. Executando os exemplos
2. Filters
   1. Implementando um predicate
3. Mappers
   1. Escrevendo uma function
   2. ```flatMap``` e ```distinct```
4. Sorters
   1. Implementando um ```Comparator```
   2. Usando um ```Comparator```
   3. Revertendo uma lista
5. Collectors
   1. ```toList()``` e ```toSet```
   2. ```toMap```
6. ```toMap```
7. Conclusão

## Introdução

Star Wars é uma das franquias mais famosas deste lado do universo. Todas a trama ocorre há muito tempo atrás em uma galáxia muito muito distante. Foi responsável por gerar incontáveis fãs pelo planeta entre muitas gerações. Com oito filmes, sete da saga principal e um spin-off (até o momento de encerramento desse artigo existe um filme da saga sendo filmado e um outro spin-off) muitas coisas podem ser feitas para minerar seus dados. Esse artigo está ignorando o Star Wars Holiday Special e os filmes dos Ewoks. Sinta-se livre para inseri-los no arquivo ```all_star_wars_movie.json```.

### Java 8 Lambdas

<<<<<<< HEAD
Na linguagem de programação Java, os lambdas foram introduzidos na versão 8 e estão espalhadas pela linguagem facilitando o jeito pelo qual usamos as coisas. Verifique no pacote de IO para ver novas maneiras de carregar arquivos. Outra característica que foi introduzida com os lambdas, foram os métodos default nas interfaces. Verifique a interface Comparator, lá existem muitos métodos default. Eles serão utilizados nos exemplos desse artigo para ordenar coisas. Muitas outras coisas foram introduzidas na versão 8 para facilitar o desenvolvimento de aplicações em Java.
=======
Na linguagem de programação Java os lambdas e stream foram introduzidos na versão 8. 

In the Java language, the lambdas were introduced in the version 8. 
They are all spread in the language making easy the way we use things. 
Check the IO package to see new ways to load files. 
Other thing that was introduced with Java 8 lambdas was the default interface methods to help the lambdas. 
Check the Comparator interface, there are a bunch of default methods there. 
It's used in the sorter examples of this article. 
Many other things were introduced to make easy the way we develop in Java nowadays.


>>>>>>> b4af4f9f968810014efedf6a9303c71f1e422828

Esse artigo está dividido em quatro seções:

1. Filters, no qual o método ```filter``` é demonstrado.
2. Mappers, no qual os métodos ```map``` e ```flatMap``` serão discutidos
3. Sorters, no qual o método ```sort``` é usado
4. Collector, no qual o método ```collect``` é usado

### Código Fonta

Para escrever esse arquivo, foi desenvolvido um pequeno projeto. Ele está no github pronto para ser clonado. Veja a e [página do projeto](https://github.com/ortolanph/starlambdawars) e se divirta. Não se esqueça de marcar o projeto com uma estrela!

### Executando os exemplos

Leia o arquivo README.md para entender como executar os exemplos desse artigo.

## Filters

Filters significam que é desejado selecionar dados sob uma condição. Em java, condições são predicados e os mesmos estão endereçados para a interface ```java.util.function.Predicate<T>```. Há somente um método que deve ser implementado: o método ```boolean test(T t)```, que avalia a expressão e retorna um booleano. Existem ainda outros métodos default que podem ser usados ao implementar essa interface.
{'fraction_non_alphanumeric': 0.06894340227673561, 'fraction_numerical': 0.013307679974346641, 'mean_word_length': 4.317988064791134, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1884895', 'n_tokens_mistral': 2069, 'n_tokens_neox': 2033, 'n_words': 926}