Bonjour à tous,
Je souhaiterai savoir laquelle des deux méthodes suivantes est la plus optimisée selon vous. Bien sûr je pourrai faire des tests de performances, mais ces derniers sont prévus pour le mois prochain.
Voici donc le problème :
Je dispose des éléments suivants :
Pour comparer les tableaux, facile :
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 public class Machin { private String nom; private String prenom; private int age; private List<Machin> enfants; // getters & setters } String[] tab = {"blah", "blih", "bloh"}; String[] tab2 = {"blah", "blih", "bloh", "bluh"}; List<Machin> list; // list.size() = 3 List<Machin> list2; // list.size() = 4
Pour les listes il faudrait que j'en construise une 3ième
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 boolean diff = false; for (int i=0; i<tab.length; i++) { diff = !tab[i].equals(tab2[i]); }
puis un
Je pense que l'itération du tableau sera plus rapide SAUF si il y a possibilité de faire le containsAll sur une sous-liste de list2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 diff = !list.containsAll(listTmp);
[edit]
Pour optimiser la comparaison des tableaux, éventuellement ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 boolean diff = false; for (int i=0; i<tab.length && !(diff = tab[i].equals(tab1[i])); i++);
Partager