Jump to content
Sign in to follow this  
jpedro20

ArrayList ordenado

Recommended Posts

jpedro20

Boas,

Eu quero manter um ArrayList ordenado por um determinado critério.

Qual a melhor forma de fazer isto?

Eu tinha pensado em criar um iterador e ir incrementando uma variável. Quando chegasse ao local correcto para inserir fazia array.add(variavel, object)

Ou o melhor é implementar um comparator, inserir o objecto e depois fazer collections.sort()?

Obrigado

Share this post


Link to post
Share on other sites
jpedro20

Já percebi. A minha dúvida era se não seria mais eficiente ordenar já na inserção.

No meu caso, a cada inserção vou fazer a ordenação da lista.

Obrigado pela resposta

Share this post


Link to post
Share on other sites
Knitter

Depende da quantidade de inserções pesquisas que vais efectuar.

No entanto o Java não possui classes para colecções com ordem, creio que são todas sem ordem definida, o que implica que se quiseres manter a lista ordenada na inserção terás de implementar as tuas próprias listas e o teu próprio mecanismo de ordenação (métodos para pesquisar a ordem, métodos para inserir na posição indicada, etc).

Tenho implementação de listas ordenadas mas não está preparada para fazer uso de genéricos. Tenho também ideia que existia uma biblioteca que oferecia esse tipo de classes (já não sei de da Google se de um dos projectos da da Apache Foundation).

Resumindo, a não ser que encontres algo já implementado, vai dar algum trabalho colocar listas que aceitem ordenação na inserção, mas é possível fazer e nem é muito complexo. Se a tua lista tiver muitas inserções e pesquisas então inserir ordenadamente é mais vantajoso, se tem poucas pesquisas e muitas inserções, fazer a ordenação apenas na altura de consultar é capaz de ser melhora, mas como em qualquer tipo de comparação de velocidade, só testando os dois casos para saber.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.