Bonjour à tous
j'ai un code qui est bizarement lent le voici :
ce qui est étrange c'est que si je supprime la ligne suivante :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 private int compare(int delay) { int count = 0; //faire une copie de dc2_copy ArrayList<decompose> dc2_copy3 = new ArrayList<decompose>(); for (int k = 0; k < dc2_copy.size(); k++) { dc2_copy3.add(new decompose()); dc2_copy3.get(k).start = dc2_copy.get(k).start; } //on compare dc2_copy3 et dc1 int s1 = dc1.size(); for (int i = 0; i < s1; i++) { double b = dc1.get(i).start; int s2 = dc2_copy3.size(); double a=0; for (int j = 0; j < s2; j++) { //le fait de laisser la ligne suivante seule augmente considérablement le temps de calculs a = dc2_copy3.get(j).start; if (a > b - delay && a <= b + delay) { count++; dc2_copy3.get(j).start = -1999999999; j = dc2_copy3.size(); //break } } } return count; }
j'ai une exécution quasi instantannée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part a = dc2_copy3.get(j).start;
la question est pourquoi ? et qu'est-ce que je fais de travers?
merci!
je rajoute la classe "décompose" pour que vous sachiez tout:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class decompose { public int number; public double start; public double end; public String text = ""; public String timecodes = ""; }
Partager