1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 3
    Points : 1
    Points
    1

    Par défaut Opération sur des classes générique

    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

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2007
    Messages
    25 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 25 257
    Points : 48 310
    Points
    48 310

    Par défaut

    Non, il n'y a pas de surcharge des opérateurs en java. Le mieux que tu puisse avoir c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Liste[i] = Liste[i].multiply(other[i])
    Il s'agit alors d'une méthode java de Vector, tout ce qu'il y a de plus classique à écrire.

    Par contre, si tu veux paralléliser tes calculs, les méthodes de l'interface Stream (parallel) seraient peut être préférable au démarrage de nouveaux threads.
    David Delbecq Java developer chez HMS Industrial Networks AB.     LinkedIn | Google+

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 3
    Points : 1
    Points
    1

    Par défaut

    Super merci

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 3
    Points : 1
    Points
    1

    Par défaut

    J'ai une erreur qui me dits que la méthode multiply n'est pas définie sur T

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2007
    Messages
    25 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 25 257
    Points : 48 310
    Points
    48 310

    Par défaut

    Ha je pensais que tu voulais multiplier les vecteur, pas leur Number.

    pour ce qui est de travailler avec le number, il n'y a pas d'avance, tu va devoir écrire chaque cas en testant le type de Number et en typecastant vers le type en question.
    David Delbecq Java developer chez HMS Industrial Networks AB.     LinkedIn | Google+

Discussions similaires

  1. [Tableaux] Opérations sur des données temporelles
    Par MmoulinexX dans le forum Fonctions
    Réponses: 1
    Dernier message: 30/10/2006, 13h26
  2. Opérations sur des dates
    Par loreleï85 dans le forum PHP & SGBD
    Réponses: 4
    Dernier message: 16/10/2006, 18h01
  3. opération sur des champs déjà manipulés
    Par fred23195 dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 23/08/2006, 17h16
  4. [Dates] Question pour opérations sur des heures
    Par Sangdrax1604 dans le forum Fonctions
    Réponses: 7
    Dernier message: 23/08/2006, 12h07
  5. Opération sur des heures dans Excel
    Par mirascheat dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2005, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo