Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Diferença ordenação ArrayList e TreeSet

Porque a classe TreeSet que herda da interface Set não pode utilizar o metodo reverse da interface Collections para fazer a ordenação decrescente? Pergunto isso porque a classe ArrayList que também é herdeira da interface Collections consegue-se efetuar desta maneira.

2 respostas
solução!

Bom dia Leonardo,

Por causa das estruturas de cada coleção. Toda coleção herda de Collections. Porém existe mais um nível de interface antes de chegar nas implementações.

ArrayList herda de List, que herda de Collection. TreeSet herda de Set, que herda de Collection.

Embora ambas sejam coleções, List tem algumas características e Set tem outras, entre elas:

List: mantém ordem dos elementos, representaria uma estrutura de dados em lista como o nome sugere, onde tem um elemento, e tem o próximo e assim por diante. É rápida para adicionar elementos por índice, mas é lenta para realizar buscas que não sejam por índice.

Set: não mantém ordem dos elementos, representaria uma estrutura de dados semelhante a um conjunto matemático, onde não se mantém a ordem dos elementos, ou seja, não se sabe quem é primeiro, segundo, último, etc. É rápido para inserir elemento, e muito rápido para realizar buscas dos valores dentro do conjunto, devido a implementação de hash (leia mais na documentação do Java).

Resumindo: é por isso que uma coleção que implementa a interface Set não possui um método reverse para ela, pois para reverter a ordem dos elementos é preciso saber a ordem deles, e no Set não existe ordem.

Abraços.

Muito Obrigado Emerson.

Abraços.