Optimiser le temps de parcours d'un vecteur
Bonjour à tous,
J'ai effectué une requete dans ma base de données qui me renvoie un vecteur contenant 300.000 objets. Ces objets sont des instances de la classe Element, que j'ai créé.
Bref, le problème, c'est que ça met un temps fou à parcourir mon vecteur. En gros je veux récupérer chaque objet, pour récupérer son id, et le stocker dans un string que je vais concaténer, pour ensuite m'en servir dans une requete DELETE.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
// je récupère dans un vecteur les objets que j'ai sélectionnés dans une liste à l'écran
Vector selection = getElementListPanel().getObjetsSeleted();
// je trim le vecteur histoire d'ajuster sa taille au contenu réel
selection.trimToSize();
// je change le curseur en sablier
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
// je récupère la taille actuel du vecteur ( 300.000 environ )
int taille = selection.size();
// tant qu'on a pas atteint la taille, on boucle
for ( i = 0; i < taille; i++) {
// on concatène un string, qui sera la clause IN ( xx, xx, xx ... ) d'une futur requete
clauseIn += "'"+((Element) selection.get(i)).getCode()+"',";
} |
Actuellement, je parcourt 30.000 ligne en 2minutes ... des idées pour optimiser le tout ?
J'ai essayer avec un enume de mon vecteur, mais c'est tout aussi long
merci d'avance,
a+