Boas malta Guj ca vou eu denovo com minhas duvidas…
Há alguma maneira de usar não usar o contains e ver se um elemento ta num arraylist?
eu tnho codigo que preciso otimiza-lo pois para pekenos testes ele safa-se, mas para uma quantidade enorme de outputs leva muito tempo o que leva o Contains a baixar a performance do meu codigo.
Mude para um Map (ou Set, se nao houver duplicados).
Rafael
T
thingol
Só completando o que o Rafael disse.
Set<String>cidades=newLinkedHashSet<String>(); // use new TreeSet<String>() se quiser que as cidades sempre fiquem em ordem alfabéticacidades.add("Lisboa");cidades.add("Porto");cidades.add("Vila Nova de Gaia");cidades.add("Amadora");cidades.add("Funchal");cidades.add("Setúbal");cidades.add("Guimarães");if(cidades.contains("Funchal"))...//maisrápidoquenoArrayList
Só uma coisinha. No caso do Set, não é preciso chamar “contains” antes de adicionar algo a ele; o único problema (ou solução) é que ele não admite elementos repetidos.
Alkamavo
Boos thingol valeu ai a ajuda..
Mas o problema que surgui é k antes eu tinha este metodos que me retorna um arraylist de filas com prioridade
e tnho estes ciclos cujo o objectivo é das cidade diferente em uma fila ou sejas todas cidades com mesmo nome ficam em cada fila.
com estes ciclos tinha tudo resolvido:
for (int y = 0; y < cities.size(); y++) {
if (cities.get(y).equals(v_partida.getcidade())) {
build.get(y).add(v_partida);
}
para a cidade de destino:
for (int z = 0; z < cities.size(); z++) {
if (cities.get(z).equalsIgnoreCase(
v_chegada.getcidade())) {
build.get(z).add(v_chegada);
}
}
antes isso dava bm...com arraylist com o Set ou treeset isso dava em malukeira!!!
T
thingol
Conserve os seus dados em um arraylist sempre ordenado, e faça busca binária. (É claro que eu vi que você tem 2 arraylists paralelos pelo menos; isso vai dar alguns problemas porque você precisa ordenar um e deixar o outro em paralelo na mesma ordem.)
Alkamavo
Pois com arralist dava bm , o problema era mesmo a perfomance…
Mas o prazo da entraga passou…eu tenho projecto a dar os resultados que se quer…o problema é mesmo a perfomance…vou ter meia 50% da cotaçao…
Mas é a vida…
Obrigado pela ajuda Thingol…