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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
 
public class Vector0<T extends Number> {
	private T Liste[];
	public  Double result[];
	int taille_liste,nbre_thread,taille_bloc;
	Thread Thread_list[];
 
	public Vector0(T[] liste2,int N_Thread) {
		Liste = liste2;
		nbre_thread = N_Thread;
		init();
	}
 
	private void init() {
		taille_liste = Liste.length;
		result = new Double[taille_liste];
 
 
		if (nbre_thread > taille_liste) {
			nbre_thread = taille_liste;
		}
 
 
		taille_bloc = taille_liste/nbre_thread;
 
 
 
 
		Thread_list = new Thread[nbre_thread];
	}
 
 
 
	public Number[] getVector() {
		return Liste;
	}
 
	public void mul(Vector0<T> vecteur2) {
		int a;
		a = vecteur2.getVector().length;
 
		if(a == taille_liste){
 
				int b_inf,b_supp;
				b_inf = 0;
				b_supp = taille_bloc;
 
 
				for (int i = 0; i < nbre_thread - 1 ; i++) {
 
 
					Thread_list[i] = new Thread(new ThreadMull(b_inf,b_supp,vecteur2));
					b_inf = b_supp;
					b_supp += taille_bloc;
 
				}
 
 
				Thread_list[nbre_thread-1] = new Thread(new ThreadMull(b_inf,taille_liste,vecteur2));
 
				for(int i=0;i<nbre_thread;i++) {
					Thread_list[i].start();
				}
 
				for(int i=0;i<nbre_thread;i++) {
					try {
						Thread_list[i].join();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		Liste = (T[]) result;		
		}
 
	public class ThreadMull implements Runnable {
 
		private int borne1, borne2;
		Number other[];
		public ThreadMull(int lim1, int lim2,Vector0<T> vecteur2) {
			borne1 = lim1;
			borne2 = lim2;
			other = vecteur2.getVector();
 
 
		}
 
		public void run() {
			for(int i = borne1;i< borne2;i++) {
 
 
				result[i] = (Liste[i].doubleValue() * other[i].doubleValue());
			}
		}	
	}
Bonjour je voudrais faire une classe vecteur sur laquelle je pourrais faire des opérations +,* mais je n'ai pas trouvé d'autre moyen que de passer par une liste que je réassigne par la suite y a-t-il une possibilité de directement modifier la liste de base. Mon problème se trouve dans la dernière ligne de code (94) je voudrais pouvoir faire quelque chose comme Liste[i] = Liste[i]*other[i]
Merci d'avance