Encontrei isso (e muitas outras coisas) num projeto aqui:
List<Elemento> colecao = new ArrayList<Elemento>();
//popula colecao...
....
//alguem me explica pq ele fez isso?
Elemento el = (Elemento)colecao.toArray()[0])
....
Pior que isso aparece direto nesse projeto e muitas vezes dentro de algum loop.
Sério, alguém me explica o que justificaria isso? Pensei pensei e não veio nenhuma justificativa plausível.
Tudo bem que ler um array é mais rápido e tals, mas não assim!