Por vezes eu uso funcionalidades ainda não ensinadas na cadeira, até ao ponto do exercício, mas apesar disso, devem ser facilmente ignoradas ou traduzidas para algo mais conhecido, mantendo a utilidade de ter uma resolução alternativa por onde possam estudar.
Eu usei colecções apenas uma vez ou outra, para não desviar muito do enunciado, mas se virem colecções do tipo ArrayList, por exemplo, isso é semelhante a um array de objectos, mas com tamanho variável. Uma grande chatice dos arrays primitivos é que o tamanho é fixo e tem que ser conhecido de antemão.
http://download.oracle.com/javase/tutorial/collections/intro/index.html
As excepções podem ser ignoradas. É essencialmente uma forma de gerir os erros. No entanto, é uma boa coisa para se conhecer!
http://download.oracle.com/javase/tutorial/essential/exceptions/definition.html
Várias classes têm métodos criados apenas para facilitar a criação de testes automatizados. Estes testes são criados com JUnit e se estiverem interessados, posso explicar como se usam, que é muito simples.
Tenham apenas noção que não são necessários para o que é pedido no enunciado, mas é o que uso, em vez de introduzir os dados manualmente pelo main() todas as vezes que quero testar uma funcionalidade.
Ler mais em Writing JUnit 4 Tests in NetBeans IDE
Por fim, pode ser que tenham uma resolução mais simples e eficiente que a minha, portanto agradecia se pudessem partilhar também. :)
Comentem algo confuso ou que não percebem. Pode ser que o esclarecimento ajude outros também.