Bonjour au forum !
Je planche actuellement sur un projet, et j'ai un temps d'exécution beaucoup trop élevé.
J'ai identifié la cause comme étant une méthode qui effectue une double boucle sur un ArrayList<List<String>>().
Voici mon code que je vous décrirai ensuite :
Je fais donc une double boucle pour ne garder que les éléments qui existent au moins 2 fois sous le même "name" avec une "valeur" différente.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public List<List<String>> filteredMaterial(List<List<String>> material) { List<String> filteredMaterialTemp = new ArrayList<>(); FMaterial = new ArrayList<>(); for (int i = 0; i < material.size(); i++) { // On parcourt material pour éviter les doublons de "valeur" pour un même "name" for (int j = i + 1; j < material.size(); j++) { if (material.get(i).name.equals(material.get(j).name) && !material.get(i).valeur.equals(material.get(j).valeur)) { FMaterial.add(material.get(i)); } } } System.out.println("Taille du materiel " + material.size()); // retourne 106 000 return FMaterial; }
J'aimerai éviter cette double boucle.
Une idée?
D'avance merci !!!
Partager