Skip to content

100 Dias praticando desafios de Java puro com orientação a objetos e recursos nativos da linguagem

Notifications You must be signed in to change notification settings

EdnaldoLuiz/100-days-of-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

100 Days of Java

Desafios

Dia Desafio Recursos Status
1 Gerando um número aleatório dentro de uma faixa específica. -
2 Formatando um objeto LocalDateTime. -
3 Removendo itens de uma Lista. -
4 Agendando uma tarefa para ser executada a cada 2 segundos. ScheduledExecutorService, Executors
5 Criando uma lista com itens filtrados de outras listas. -
6 Executando uma tarefa de forma assíncrona. -
7 Formatando uma mensagem usando MessageFormat. MessageFormat
8 Criando um pool de threads para executar tarefas simultaneamente e reutilizar threads. -
9 Criando um Enum valorizado. -
10 Ordenando um java.util.Map pelos seus valores. Map, streams
11 Invertendo uma String. -
12 Utilizando Callable e Future para executar tarefas em paralelo. Callable, Future
13 Juntando Strings. -
14 Dividindo Strings. -
15 Padrão Builder. -
16 Criando um Singleton inicializado de forma preguiçosa. -
17 Nunca passe um double como argumento ao construir objetos BigDecimal. -
18 Encontrando o valor máximo de uma Coleção. Collections
19 Uma implementação de Map que mantém os elementos na mesma ordem que foram inseridos. LinkedHashMap
20 Listar todas as fontes do seu sistema. GraphicsEnvironment
21 Mapeando e reduzindo de uma Lista. -
22 Executando comandos do sistema operacional. ProcessBuilder, Process
23 Transformar um array de Enum em um array de String. Arrays
24 Descobrindo o gasto de memoria da JVM. Runtime
25 Correspondência de padrões para instanceof no JDK 16. -
26 Utilizando Optional quando null é um valor de retorno válido. Optional
27 Criando uma String a partir de uma Lista: um item por linha. -
28 Ordenando uma Lista por um atributo específico. -
29 Criando Strings de várias linhas. -
30 Convertendo um Stream para Lista no JDK 16. -
31 Utilizando switch para retornar um valor. -
32 Começando a usar o Optional#orElseThrow em vez de Optional#get. Optional
33 Utilizando um bloco de código estaticamente. -
34 Imprimindo informações sobre todos os processos Java em execução na máquina. -
35 Recursos de autoclosing (try-with-resources). -
36 Utilizando Objects.requireNonNullElse quando Optional não é uma opção. Objects
37 Compreendendo os Operadores de Prefixo (i) e Sufixo (i). -
38 Utilizando uma Matriz para percorrer valores. -
39 Fornecendo um valor padrão em caso de timeout ao executar uma tarefa assíncrona. -
40 Filtrando um Stream usando Predicate#not. Predicate
41 Crie uma unmodifiableList usando Collections. Collections
42 Indentando uma String. -
43 Utilizando StringJoiner. StringJoiner
44 Formatando Strings com java.lang.String#formatted. String
45 Utilizando java.util.Comparator#comparing para ordenar uma Lista. Comparator
46 Utilizando Function para mapear uma Lista de um tipo para outro. Function
47 Criando uma Interface Funcional. FunctionalInterface
48 Function#identity: Criando uma função que sempre retorna seu argumento de entrada. Function
49 Não se repita: Reutilizando funções com Function#andThen. Function
50 Criando um Stream a partir de um intervalo de Integers. Stream
51 Utilizando UnaryOperator. UnaryOperator
52 Tornando IOException não verificada. IOException
53 Utilizando Supplier para executar uma criação de objeto cara apenas quando e se necessário. Supplier
54 Computando valores de um Map se ausentes. Map
55 Imprimindo caracteres coloridos no console. ANSI Colors
56 Converter uma String em uma lista de Long. -
57 Gerando um Stream infinito. Stream
58 Utilizando um Predicate. Predicate
59 Encadeando Predicates. Predicate
60 Particionando um Stream por um Predicate. Predicate
61 Utilizando EnumMap Quando a Chave do Seu Mapa é um Enum. EnumMap
62 Utilizando java.util.function.Consumer. Consumer
63 Utilizando Classes Seladas do JDK 17. Sealed Classes
64 Transforme uma variavel em todos os tipos de wrappers que herdam de Number. -
65 Reduzindo a verbosidade de Generics com Diamond Operators. Generics
66 Criando uma Function genérica. Function
67 Criando uma Interface de some e chamar seu método com um lambda. -
68 Encontrando a frequência de um elemento em uma Lista. Collections
69 Utilizando Method Reference e lambda. -
70 Utilizando o padrão Builder para criar um Objeto. -
71 Criar uma chain of responsability usando interface. -
72 Utilizando a palavra reservada synchronized. synchronized
73 Utilizar CompletableFuture para criar uma task CompletableFuture
74 Utilizando Reactive Streams a partir do Java 9. Reactive Streams
75 Removendo elementos duplicados de uma Lista. Collections
76 Somando os elementos de uma Lista. Collections
77 Sempre fazer o cast dos operandos Math antes da atribuição. -
78 Criando um array bidimensional. -
79 Trabalhando com LocalDate e LocalTime. LocalDate, LocalTime
80 Manipulando arquivos com a classe File. File
81 Lendo e escrevendo em arquivos com a classe Files. Files
82 Trabalhando com Path e Paths para manipulação de arquivos. Path, Paths
83 Utilizando a classe Scanner para ler entrada do usuário. Scanner
84 Trabalhando com expressões regulares e a classe Pattern. Pattern
85 Criando e manipulando conjuntos com a classe Set. Set
86 Trabalhando com filas usando a interface Queue. Queue
87 Utilizando a classe Stack para criar uma pilha. Stack
88 Trabalhando com datas e horas usando a classe ZonedDateTime. ZonedDateTime
89 Criando e manipulando mapas com a classe TreeMap. TreeMap
90 Trabalhando com a classe Random para gerar números aleatórios. Random
91 Criando e manipulando listas com a classe LinkedList. LinkedList
92 Trabalhando com a classe StringBuilder para manipular strings. StringBuilder
93 Utilizando a classe Math para realizar operações matemáticas. Math
94 Trabalhando com a classe BigInteger para números inteiros de tamanho arbitrário. BigInteger
95 Utilizando a classe BigDecimal para números decimais de precisão arbitrária. BigDecimal
96 Trabalhando com a classe AtomicInteger para operações atômicas em inteiros. AtomicInteger
97 Utilizando a classe AtomicReference para operações atômicas em referências. AtomicReference
98 Trabalhando com a classe OptionalDouble para valores double opcionais. OptionalDouble
99 Utilizando a classe Timer para agendar tarefas. Timer
100 Comarando o Desempenho de uma ArrayList vs LinkedList. List

About

100 Dias praticando desafios de Java puro com orientação a objetos e recursos nativos da linguagem

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages