Skip to content

Esta é uma coleção de exercícios práticos para dominar a Java API Streams, focando nas principais interfaces funcionais e suas aplicações em processamento de dados.

License

Notifications You must be signed in to change notification settings

Caroline-Teixeira/api_streams_exercises

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Exercícios Java API Streams

Feito com Java Stream API

Descrição

Esta é uma coleção de exercícios práticos para dominar a Java API Streams, focando nas principais interfaces funcionais e suas aplicações em processamento de dados.

🎯 Objetivos

  • Compreender e aplicar as principais interfaces funcionais do Java 8+;
  • Dominar operações de Stream para manipulação de coleções;
  • Desenvolver habilidades em programação funcional com Java;
  • Praticar cenários reais de processamento de dados;

📋 Estrutura dos Exercícios

Consumer - Exercícios focados em consumo e processamento de dados

  • Consumer : Representa uma operação que aceita um argumento do tipo T e não retorna nenhum resultado. É utilizada principalmente para realizar ações ou efeitos colaterais nos elementos do Stream sem modificar ou retornar um valor.

Supplier - Exercícios de fornecimento e geração de dados

  • Supplier : Representa uma operação que não aceita nenhum argumento e retorna um resultado do tipo T. É comumente usada para criar ou fornecer novos objetos de um determinado tipo.

Function - Exercícios de transformação e mapeamento

  • Function <T,R>: Representa uma função que aceita um argumento do tipo T e retorna um resultado do tipo R. É utilizada para transformar, ou mapear os elementos do Stream em outros valores, ou tipos.

Predicate - Exercícios de filtragem e validação

  • Predicate : Representa uma função que aceita um argumento do tipo T e retorna um valor booleano (verdadeiro oufalso). É comumente usada para filtrar os elementos do Stream com base em alguma condição.

BinaryOperator - Exercícios de operações binárias

  • BinaryOperator <T,T,T>: operação que combina dois argumentos do tipo T e retorna um resultado do mesmo tipo T. É usada para realizar operações de redução em pares de elementos, como somar números ou combinar objetos.

📅 Próximos

  • BiFunction - Exercícios com funções de dois parâmetros
  • UnaryOperator - Exercícios de operações unárias
  • Comparator - Exercícios de ordenação personalizada

🛠️ Tecnologias Utilizadas

  • Java 8+ (Streams API)
  • IDE (IntelliJ IDEA, Eclipse, VS Code ou qualquer editor)

🚀 Como Executar

  1. Clone o repositório
git clone [url-do-repositorio]
  1. Navegue até o diretório do projeto
cd java-streams-exercises

Abra o projeto em sua IDE favorita e execute!

📁 Estrutura do Projeto

Consumer/
├── br/
│   └── com/
│       └── consumer/
│           ├── Names.java
│           ├── NamesExp.java
│           ├── Product.java
│           └── ProductConsumer.java
├── Consumer_README.md
├── Main.java
└── README.md

... demais pacotes

📋 Sobre os READMEs

Cada pasta de exercícios contém:

  • README.md principal: Explicação geral do conceito (Consumer, Supplier, etc.)
  • Enunciados detalhados: Objetivos específicos de cada exercício
  • Dicas de implementação: Orientações para resolver os exercícios

💡 Dicas de Estudo

  • Comece pelo básico: Entenda bem cada interface funcional antes de avançar
  • Pratique regularmente: Resolva alguns exercícios diariamente
  • Tente resolver sozinho: Tente resolver antes de olhar a resposta. Pode-se criar novas classes ou pacotes.
  • Experimente: Tente diferentes abordagens para o mesmo problema
  • Leia a documentação: Consulte a documentação oficial do Java para entender melhor

📖 Recursos Adicionais

🤝 Contribuindo

Como Contribuir

  1. Fork este repositório
  2. Clone seu fork para sua máquina local
git clone https://github.com/SEU-USERNAME/java-streams-exercises.git
  1. Crie uma branch para sua contribuição
git checkout -b feature/nova-funcionalidade
# ou
git checkout -b fix/correcao-bug
  1. Faça suas alterações e commits
git add .
git commit -m "feat: adiciona exercícios de BiPredicate"
  1. Push para sua branch
git push origin feature/nova-funcionalidade
  1. Abra um Pull Request descrevendo suas alterações

💡 Sugestões de Contribuição

Novos Exercícios

  • Exercícios básicos: Para iniciantes em Streams
  • Exercícios avançados: Combinando múltiplas interfaces funcionais
  • Exercícios do mundo real: Casos práticos de uso empresarial
  • Exercícios de performance: Comparando abordagens tradicionais vs Streams

Melhorias de Código

  • Refatoração de soluções existentes
  • Otimização de performance
  • Adição de comentários explicativos
  • Melhoria na legibilidade do código

Documentação

  • Tradução para outros idiomas
  • Exemplos adicionais
  • Guias de melhores práticas
  • Explicações mais detalhadas

Testes

  • Validação manual dos exercícios
  • Testes com diferentes cenários de entrada
  • Verificação de outputs esperados

📝 Padrões de Contribuição

Nomenclatura de Commits

  • feat: para novas funcionalidades
  • fix: para correções de bugs
  • docs: para mudanças na documentação
  • test: para adição/modificação de testes
  • refactor: para refatoração de código

Critérios de Aceitação

  • ✅ Código compilável e executável
  • ✅ Funcionalidade testada manualmente
  • ✅ Documentação adequada
  • ✅ Seguir padrões de código Java
  • ✅ Exercícios com níveis de dificuldade apropriados

Autor(a): Caroline 💙
Licença : License MIT

About

Esta é uma coleção de exercícios práticos para dominar a Java API Streams, focando nas principais interfaces funcionais e suas aplicações em processamento de dados.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages