Olá!
Só a nível de observação,:
No método public delete() antes de chamar o private eu verificava se "contain(key)" , se não continha eu dava um " return; " .
E uma outra checagem era ver se a key era NULL para então retornar o exception.
No envio, o correto acusou erro na verificação de exceções no delete(). Quando removi o if(!contains(key)) ele passou.
Acredito que seja um erro no corretor. Certo? Se não, porque não faz sentido verificar isso?
Obrigado \o/
Andrei.