Classificação
Antes de iniciarmos uma jornada explorando as inúmeras alternativas em manipular um grupo de elementos, precisamos compreender duas características extremamente relevantes numa coleção que são Ordenação e Classificação .
Ordenação uma coleção é considerada ordenada quando a mesma possibilita uma iteração nos seus elementos numa ordem específica não aleatória e determinada por um índice explícito ou por uma sequência baseada na inserção dos elementos.
Classificação uma coleção é considerada classificável quando a ordem dos elementos é determinada por algumas regras naturais conhecidas como Ordem de Classificação. Uma ordem de classificação não tem nada a ver com o momento em que o objeto foi adicionado na coleção e nem pela última vez que foi acessado, nem pela "posição" que ele foi adicionado.
Você sabe como classificar alfabeticamente -
A
vem antes B
, F
ante do G
e assim por diante. Em um conjunto de Strings a ordem natural é alfabética. Para uma coleção de Inteiros a ordem natural será numérica. E quanto aos alunos de uma sala de aula? Não existe uma ordem pré-estabelecida, este é o papel da interface java.util.Comparable
.Antes de partimos para uma jornada de códigos precisamos ter em mente o comportamento que deverá esperar ao / / nte de inúmeras alternativas disponíveis dentro da Collections Framework.
Classe | Lista | Conjunto | Mapa | Fila | Ordenado | Classificado |
---|---|---|---|---|---|---|
ArrayList | X | Por índice | Não | |||
Vector | X | Por índice | Não | |||
LinkedList | X | Por índice | Não | |||
HashSet | X | Não | Não | |||
LinkedHashSet | X | Por ordem de inserção | Não | |||
TreeSet | X | Sim (classificada) | Por ordem natural ou regras de comparação personalizada | |||
HashMap | X | Não | Não | |||
Hashtable | X | Não | Não | |||
TreeMap | X | Sim (classificada) | Por ordem natural ou regras de comparação personalizada | |||
LinkedHashMap | X | Por ordem de inserção ou último acesso | Não | |||
PriorityQueue | X | Sim (classificada) | Pela ordem de "coisas a fazer" |
Diante de tanta explicação chega à conclusão que: Uma coleção pode ser não-ordenada e não-classificada, ordenada e não-classificada ou ordenada e classificada, porém, nunca poderá classificada e não-ordenada.