Skip to content

andreluislima/desafios-tecnicos-java

 
 

Repository files navigation

🚀 Desafios Técnicos em Java

Este repositório reúne uma coleção de desafios práticos de lógica de programação, Programação Orientada a Objetos (POO) e estruturas de dados, todos implementados em Java.

O objetivo é reforçar a base de programação com exercícios progressivos, desde conceitos fundamentais até problemas mais estruturados, servindo como prática para entrevistas de estágio e vagas de desenvolvedor júnior.

📂 Estrutura

  • Cada desafio está em uma pasta própria, com nome padronizado.
  • Dentro de cada pasta há a implementação em Java e, quando necessário, comentários explicando a proposta.
  • Os desafios estão organizados por nível de dificuldade.
  • Desafios já completados: ✅
  • Desafios para realizar: ⬜

📚 Lista de Desafios

👍 Nível 1 — Desafios Simples

  • ✅ 000. Olá, Mundo!
  • ✅ 001. Verificador de Palíndromo
  • ✅ 002. Soma de números únicos
  • ✅ 003. Orientação a Objetos: Zoológico
  • ✅ 004. Contador de Vogais
  • ✅ 005. Fatorial
  • ✅ 006. Números Primos
  • ✅ 007. Inverter String
  • ✅ 008. Saudação personalizada com ponto de exclamação
  • ✅ 009. Receber dois números e mostrar operações
  • ✅ 010. Verificar se uma string contém apenas dígitos
  • ✅ 011. Calcular a área de um círculo (usuário informa o raio)
  • ✅ 012. Converter Celsius ↔ Fahrenheit
  • ✅ 013. Encontrar o maior de 3 números dados
  • ✅ 014. Calcular média aritmética de uma lista de números

🧠 Nível 2 — Desafios de Lógica Intermediária

  • ✅ 001. Soma dos Dígitos
  • ✅ 002. Fibonacci até N termos
  • ✅ 003. Remover Duplicados de um Array
  • ✅ 004. Maior e menor número de uma lista
  • ✅ 005. Contar Frequência de Caracteres
  • ✅ 006. Par ou Ímpar
  • ✅ 007. Tabuada de um número
  • ✅ 008. Verificar Anagramas
  • ✅ 009. Contar Palavras em uma Frase
  • ✅ 010. Primeiro Caractere Repetido
  • ✅ 011. Verificar se todos os caracteres são únicos
  • ✅ 012. Caixa Eletrônico Simples (POO)
  • ✅ 013. Validador de Senha
  • ✅ 014. Remover elementos repetidos mantendo a ordem
  • ✅ 015. Somar apenas números positivos de uma lista
  • ✅ 016. Ordenar um array de inteiros (sem usar sort)
  • ✅ 017. Transformar String em Título
  • ✅ 018. Classificação de triângulo pelos lados
  • ✅ 019. Potência
  • ✅ 020. Resto da Divisão
  • ✅ 021. Calcular o MDC (Máximo Divisor Comum) de dois números
  • ✅ 022. Calcular o MMC (Mínimo Múltiplo Comum) de dois números
  • ✅ 023. Implementar busca binária em um array ordenado
  • ⬜ 024. Verificar se uma matriz quadrada é simétrica
  • ⬜ 025. Rotacionar um array para a esquerda/direita

🔁 Nível 3 — Desafios com Laços e Condicionais

  • ✅ 001. Contagem Regressiva
  • ✅ 002. Números Pares de 1 a 100
  • ✅ 003. Soma de 10 números digitados
  • ✅ 004. Número Secreto com Tentativas Infinitas
  • ✅ 005. Menu com do-while
  • ✅ 006. Contar números negativos, positivos e zeros
  • ✅ 007. Tabuada de vários números
  • ✅ 008. Soma até número negativo
  • ✅ 009. Verificar número perfeito
  • ✅ 010. Gerador de sequência: potências de 2
  • ✅ 011. Média de notas com laço
  • ✅ 012. Número Primo com break
  • ✅ 013. Contar dígitos de um número
  • ✅ 014. Inverter número inteiro
  • ✅ 015. Jogo de adivinhação com tentativas limitadas
  • ✅ 016. Imprimir um triângulo de asteriscos alinhado à esquerda
  • ✅ 017. Imprimir um triângulo de asteriscos alinhado ao centro
  • ✅ 018. Imprimir no console um triângulo simétrico de asteriscos
  • ⬜ 019. Verificar se um número é Armstrong
  • ⬜ 020. Gerar a tabuada de todos os números de 1 a 10
  • ⬜ 021. Simular um relógio digital (00:00 até 23:59)

📦 Outros Desafios

  • ⬜ 001. Conversor de decimal para binário
  • ⬜ 002. Conversor de binário para decimal
  • ⬜ 003. Verificar se um ano é bissexto
  • ⬜ 004. Contar quantas vezes uma palavra aparece em um texto
  • ⬜ 005. Gerar senhas aleatórias de tamanho definido pelo usuário

🚀 Nível 4 — Desafios Avançados

  • ⬜ 001. Sistema de cadastro de alunos (usar classes, lista e métodos CRUD)
  • ⬜ 002. Implementar uma fila e uma pilha com ArrayList (simulando estrutura de dados)
  • ⬜ 003. Criar um sistema de agenda de contatos com busca por nome ou telefone
  • ⬜ 004. Implementar um mini-sistema bancário com transferências entre contas
  • ⬜ 005. Criar um programa que leia um arquivo de texto e conte as palavras mais frequentes
  • ⬜ 006. Simular um jogo da velha para 2 jogadores no console
  • ⬜ 007. Criar um programa que serialize e desserialize objetos em arquivos
  • ⬜ 008. Implementar um sistema de notas de alunos usando HashMap (chave: nome, valor: lista de notas)
  • ⬜ 009. Criar um simulador de carrinho de compras (POO + coleções)
  • ⬜ 010. Desenvolver um mini-sistema de autenticação (login/senha) com persistência em arquivo

🛠️ Tecnologias

  • Java 17+
  • IntelliJ IDEA / Eclipse (recomendado)
  • Terminal / Console para entrada de dados

📌 Objetivos

Este repositório serve como base para:

  • Treinamento de lógica de programação
  • Prática de POO com exemplos aplicados
  • Exercícios de estruturas de dados e algoritmos básicos
  • Preparação para entrevistas e testes técnicos

👨‍💻 Contribuindo

Sinta-se à vontade para:

  • Sugerir melhorias ✨
  • Adicionar novos desafios 💡
  • Corrigir ou refatorar soluções 🔧

⚠️ Status

📌 Em constante desenvolvimento... novos desafios são adicionados regularmente!

📄 Licença

Este projeto está sob a licença MIT.

About

Desafios em Java. Foco em lógica, POO e estrutura de dados básica.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%