Java é bom para estruturas de dados e algoritmos?
Sim. É verboso perto do Python, mas a verbosidade ajuda enquanto você aprende: os tipos deixam explícitos cada nó, cada referência e cada parâmetro genérico, e as coleções da biblioteca padrão correspondem uma a uma às estruturas desta trilha. É rápido o bastante para quase todo juiz online e toda entrevista, e é a linguagem que muitas faculdades e processos de recrutamento universitário usam.
Quais coleções do Java correspondem a quais estruturas de dados?
ArrayDeque é uma pilha ou uma fila, LinkedList é uma lista duplamente ligada, HashMap e HashSet são tabelas hash, PriorityQueue é um min-heap binário, e TreeMap e TreeSet são árvores rubro-negras, um tipo de árvore binária de busca balanceada como a árvore AVL que você constrói no passo dois. Não existe classe de trie nem de grafo; essas estruturas você mesmo escreve.
Devo usar Stack ou ArrayDeque em Java?
ArrayDeque. Stack é uma classe legada que estende Vector, então toda chamada é sincronizada e ela herda métodos de lista que uma pilha não deveria ter; a própria documentação do Java recomenda usar um Deque no lugar. Os entrevistadores reparam: Deque<Integer> stack = new ArrayDeque<>(); é a linha idiomática.
Java ou C++ para DSA?
Aquela em que você vai fazer entrevistas ou competir. C++ é o padrão na programação competitiva pela velocidade e pela STL; Java é igualmente bom para entrevistas, e o coletor de lixo dispensa o gerenciamento manual de memória enquanto os algoritmos ainda são novidade. As ideias são idênticas, então trocar depois significa traduzir sintaxe, não reaprender.
Quais cursos desta trilha não são ensinados em Java?
Três: programação dinâmica e a série de entrevistas em Python são ensinadas em Python, e manipulação de bits em C++. Esses cursos aparecem listados depois dos passos, cada um com um link que o abre na própria linguagem, e os dois temas se leem com facilidade vindo do Java: uma recorrência é igual em qualquer linguagem, e o Java tem os operadores bit a bit do C++ mais o deslocamento sem sinal >>>.
Preciso saber Java antes de começar esta trilha?
Você deve estar à vontade com classes, métodos, arrays e laços; generics ajudam, e você vai aprendê-los pelo caminho. Se você ainda não chegou lá, o curso de Java da Coddy te leva até esse ponto primeiro, de graça, e esta trilha continua de onde ele termina.