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 | ✅ |
ednaldoluiz / 100-days-of-java Goto Github PK
View Code? Open in Web Editor NEW100 Dias praticando desafios de Java puro com orientação a objetos e recursos nativos da linguagem