CodeGym
Promoção
Aprendizagem
Cursos
Tarefas
Pesquisas & Questionários
Jogos
Ajuda
Cronograma
Comunidade
Usuários
Fórum
Chat
Artigos
Histórias de sucesso
Atividade
Avaliações
Assinaturas
Tema claro

Aulas

  • Avaliações
  • Sobre nós
Iniciar
Comece a aprender
Comece a aprender agora
  • Meu progresso
  • Cursos
  • Mapa da Missão
  • Aulas
  • Contratos equals e hashCode

    JAVA 25 SELF
    Nível 29,Aula 0
    Nesta aula, vamos analisar como definir corretamente a igualdade de objetos em Java: qual é a diferença entre comparar referências com o operador == e comparar o conteúdo com o método equals, por que o contrato equals/ hashCode é crucial para coleções como HashSet e HashMap, e como relacioná-lo ao compareTo de Comparable. Exemplos passo a passo, boas práticas e a análise de erros típicos ajudarão a evitar armadilhas ao trabalhar com tabelas de hash e coleções ordenáveis.
    Disponível
  • Classe Objects: métodos equals, hashCode, hash

    JAVA 25 SELF
    Nível 29,Aula 1
    Nesta aula, analisamos o “canivete suíço” java.util.Objects: como comparar com segurança usando Objects.equals, calcular hashes de forma concisa com Objects.hash, delegar a comparação via Objects.compare, garantir valores não- null com Objects.requireNonNull, bem como aplicar Objects.isNull/ Objects.nonNull em streams. Mostraremos uma implementação correta de equals/ hashCode/ compareTo, analisaremos casos práticos e erros comuns ao trabalhar com HashMap/ HashSet.
    Disponível
  • Interface Comparable: implementação, compareTo

    JAVA 25 SELF
    Nível 29,Aula 2
    Nesta aula, analisamos a ordem natural dos objetos em Java por meio da interface Comparable e do método compareTo: para que servem, como implementar corretamente, como funciona a ordenação de coleções ( Collections.sort e List.sort), comparação por vários campos, tratamento de valores null e consistência com equals/ hashCode. Veremos boas práticas, erros comuns e exemplos práticos com a classe Person.
    Disponível
  • Interface Comparator: criação e uso

    JAVA 25 SELF
    Nível 29,Aula 3
    Nesta aula, analisamos quando usar Comparator em vez de Comparable, a sintaxe e o contrato do método compare(T o1, T o2), a prática de ordenar listas com Collections.sort e List.sort, criação de comparadores como classes separadas, bem como por meio de classes anônimas e expressões lambda. Veremos ordenação em múltiplos níveis, trabalho com valores null, busca com Collections.binarySearch, inversão da ordem com reversed(), além de boas práticas e erros comuns (por exemplo, por que é melhor usar Integer.compare em vez de a - b).
    Disponível
  • Busca e ordenação de elementos em coleções Java

    JAVA 25 SELF
    Nível 29,Aula 4
    Nesta aula, veremos técnicas práticas para trabalhar com coleções: busca de elementos com os métodos contains, indexOf, lastIndexOf; busca por condição usando o laço for e o operador break; encontrar mínimo e máximo com a classe Collections. Vamos praticar ordenar listas com Collections.sort e List.sort, usar Comparator, ordenar pares de Map e também objetos por um campo. Por fim, discutiremos erros comuns: listas imutáveis de List.of, tentativas de ordenar Set/ Map e comparadores incorretos.
    Disponível
  • Introdução ao Stream API: por que precisamos de streams

    JAVA 25 SELF
    Nível 30,Aula 0
    Nesta aula, analisamos por que a abordagem imperativa para processar coleções rapidamente se enche de boilerplate e como a Stream API leva o código a um estilo declarativo: cadeias de operações filter, map, collect, composição simples, menos erros e paralelismo fácil via parallelStream(). Mostraremos áreas de aplicação, a história do surgimento e erros típicos que devem ser evitados.
    Disponível
  • Operações básicas da Stream API: map, filter, collect

    JAVA 25 SELF
    Nível 30,Aula 1
    Conhecimento passo a passo das operações básicas da Stream API: como obter um stream de uma coleção e de um array ( stream(), Arrays.stream, Stream.of), em que as operações intermediárias ( filter, map, distinct) diferem das terminais ( collect, forEach, count) e como reunir os resultados com Collectors ( toList, toSet, joining). Exemplos práticos, mini-tarefas e uma seção com erros típicos ajudarão você a dominar rapidamente o processamento de dados em pipeline.
    Disponível
  • Subconjuntos da Stream API: distinct, limit, skip

    JAVA 25 SELF
    Nível 30,Aula 2
    Nesta aula, analisamos três operações-chave da Stream API para trabalhar com subconjuntos de dados: distinct (remoção de duplicatas), limit (limitação da quantidade de elementos) e skip (pular os primeiros elementos). Você verá como elas funcionam em coleções de strings e objetos, como a implementação de equals/ hashCode afeta o resultado de distinct, como combinar operações para paginação e seleção de top N e quais erros ocorrem com mais frequência.
    Disponível
  • Métodos forEach, peek: efeitos colaterais

    JAVA 25 SELF
    Nível 30,Aula 3
    Nesta aula, analisamos as operações de streams para efeitos colaterais: a terminal forEach e a intermediária peek. Vamos entender quando e por que usá-las, em que elas diferem, por que após forEach o fluxo “se encerra”, enquanto peek não altera os dados e só é executado quando existe uma operação terminal. Mostraremos exemplos práticos, veremos pontos não óbvios e erros típicos (incluindo ConcurrentModificationException e a substituição incorreta de collect por forEach).
    Disponível
  • Transformação de coleções com Stream

    JAVA 25 SELF
    Nível 30,Aula 4
    Guia prático para transformar coleções com o Stream API: converter List ↔ Set, construir mapas com Collectors.toMap() (incluindo tratamento de duplicatas), juntar em uma string com Collectors.joining(), e analisar operações terminais e intermediárias ( forEach, collect, count, anyMatch e outras). Dentro — exemplos claros, explicações e erros comuns.
    Disponível
  • Métodos sum, count, average, max, min no Stream API

    JAVA 25 SELF
    Nível 31,Aula 0
    Nesta aula analisamos as operações agregadoras do Stream API: como contar quantidade com count(), somas e médias com streams primitivos ( IntStream, LongStream, DoubleStream) e métodos sum(), average(), além de encontrar extremos com min()/ max(). Vamos discutir separadamente o trabalho com os contêineres Optional, OptionalInt, OptionalLong, OptionalDouble e as maneiras corretas de extrair valores: orElse(...), ifPresent(...), orElseThrow(). Aprenderemos a usar os coletores Collectors.summingInt, Collectors.averagingInt, Collectors.maxBy/ minBy e combiná-los com groupingBy. No fim — análise de erros e nuances típicos.
    Disponível
  • Métodos reduce e collect: agregação de dados

    JAVA 25 SELF
    Nível 31,Aula 1
    Analisamos as operações terminais de streams: a redução universal reduce() e o coletor poderoso collect(). Vamos entender as assinaturas com identity, accumulator e combiner, aprender a coletar dados com coletores prontos de Collectors ( toList(), toMap(), joining(), groupingBy()) e ver quando é melhor preferir collect() em vez de reduce(). Também discutiremos o uso de Optional, o tratamento de duplicatas em toMap() e nuances de streams paralelos.
    Disponível
  • 1
  • ...
  • 13
  • 14
  • 15
  • 16
  • 17
  • ...
  • 30
Aprender
  • Cadastro
  • Curso de Java
  • Ajuda com Tarefas
  • Preços
  • Sintaxe Java
Comunidade
  • Usuários
  • Artigos
  • Fórum
  • Chat
  • Histórias de sucesso
  • Atividade
  • Programa de afiliados
Empresa
  • Sobre nós
  • Contatos
  • Avaliações
  • Sala de imprensa
  • CodeGym for EDU
  • Perguntas frequentes
  • Suporte
CodeGymCodeGym é um curso online para aprender programação Java do zero. Este curso é uma maneira perfeita de dominar Java para iniciantes. Contém mais de 1.200 tarefas com verificação instantânea e um escopo essencial da teoria dos fundamentos de Java. Para ajudar você a ter sucesso nos estudos, implementamos um conjunto de recursos motivacionais: questionários, projetos de programação, conteúdo sobre aprendizagem eficiente e carreira de desenvolvedor Java.
Siga-nos
Idioma da interface
English Deutsch Español हिन्दी Français
Português
Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programadores se formam, não nascem" © 2026 CodeGym
MastercardVisa
"Programadores se formam, não nascem" © 2026 CodeGym