IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

indicé des vecteurs


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 55
    Points : 37
    Points
    37
    Par défaut indicé des vecteurs
    Bonjour à tous,
    J'aimerais savoir comment on pourrait faire pour indicer des vecteurs afin de les utiliser plus simplement dans une boucle for.

    A titre d'indication j'utilise le programme suivant
    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
    public class Main {
    	public static void main(String args[]) throws IOException {
     
    		//création des tableaux vitesses
    		List<Vitesse> maliste = new ArrayList<Vitesse>();
    		ArrayList v1x= new ArrayList ();
    		ArrayList v1y= new ArrayList ();
     
     
     
    		// Lecture du fichier vitesse à t=0.5s
    		String nomfich;
    		double x, y, z;
    		nomfich = "U_0,5.txt";
    		BufferedReader entree = new BufferedReader(new FileReader(nomfich));
    		Vitesse vitesse = new Vitesse();
    		System.out.println("Nombres contenus dans le fichier " + nomfich + ":");
    		String ligneLue;
    		while ((ligneLue = entree.readLine()) != null) {
    			StringTokenizer tok = new StringTokenizer(ligneLue, " ");
    			if(tok.countTokens() == 3)
    			{
    				x = Double.parseDouble(tok.nextToken().replace("(", ""));
    				y = Double.parseDouble(tok.nextToken());
    				z = Double.parseDouble(tok.nextToken().replace(")", ""));
     
    				v1x.add(x);
    				v1y.add(y);
    				vitesse.setVx(v1x);
    				vitesse.setVy(v1y);
    				maliste.add(vitesse);
    			}
    		}
     
    		entree.close();}}
    Et j'ai définit mes vecteurs vitesses ainsi:
    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
    import java.util.ArrayList;
     
    class Vitesse {
    	ArrayList vx= new ArrayList ();
    	ArrayList vy= new ArrayList ();
    	public ArrayList getVx() {
    		return vx;
    	}
    	public void setVx(ArrayList vx) {
    		this.vx = vx;
    	}
    	public ArrayList getVy() {
    		return vy;
    	}
    	public void setVy(ArrayList vy) {
    		this.vy = vy;
    	}
     
    	}
    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par Bulveye Voir le message
    J'aimerais savoir comment on pourrait faire pour indicer des vecteurs afin de les utiliser plus simplement dans une boucle for.
    De quels "vecteur" parles-tu ?

    De l'ArrayList (à peu près équivalente à la classe Vector) ?
    ArrayList est une implémentation de List basée sur des tableaux, et supporte donc très bien les indices. Voir par exemple la méthode get.

    De ta classe "vecteur vitesse" ?
    Si tu veux pouvoir référencer les différentes dimensions par des indices au lieu de lettres (dimensions "1" et "2" au lieu de "x" et "z") il va falloir réécrire ta classe ou au moins implémenter des méthodes qui font le lien entre "1" et "x", "2" et "y".
    Par exemple :
    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
    class Vitesse {
    	ArrayList[] coordinates;
     
    	public Vitesse (int dim) {
    		coordinates[i] = new ArrayList[dim];
    		for (int i = 0 ; i < dim ; i++) {
    			coordinates[i] = new ArrayList();
    		}
    	}
     
    	public ArrayList getV(int i) {
    		return coordinates[i] ;
    	}
     
    	public void setV(int i, ArrayList v) {
    		coordinates[i] = v;
    	}
    }

    Par contre, je trouve ta représentation assez curieuse...
    Tu manipules un objet comportant une liste de coordonnées x et une liste de coordonnées y, ces coordonnées se correspondant 2 à 2. J'aurais plutôt tendance à manipuler une seule "liste de vitesses" List<Vitesse> où chaque objet Vitesse comprend une coordonnée x et une coordonnée y.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class Vitesse {
     
    	double vx;
    	double vy;
    	double vz;
     
    	public Vitesse(double vx, double vy, double vz) {
    		this.vx = vx;
    		this.vy = vy;
    		this.vz = vz;
    	}
    }
    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
     
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.StringTokenizer;
     
    public class Main {
     
    	public static void main(String args[]) throws IOException {		
    		//création des tableaux vitesses
    		List<Vitesse> maListe = new ArrayList<Vitesse>();	
    		// Lecture du fichier vitesse à t=0.5s
    		String nomfich = "U_0,5.txt";
    		BufferedReader entree = new BufferedReader(new FileReader(nomfich));
    		System.out.println("Nombres contenus dans le fichier " + nomfich + ":");
    		String ligneLue;
    		while ((ligneLue = entree.readLine()) != null) {
    			StringTokenizer tok = new StringTokenizer(ligneLue, " ");
    			if(tok.countTokens() == 3)
    			{
    				maListe.add(new Vitesse(
    				Double.parseDouble(tok.nextToken().replace("(", "")),
    				Double.parseDouble(tok.nextToken()),
    				Double.parseDouble(tok.nextToken().replace(")", ""))
    				));
    			}
    		}
    		entree.close();	
    	}
     
    }
    C'est mieux non ?

    --
    http://www.florentdelhaye.eu

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/03/2015, 09h31
  2. C'est quoi les INDICES des triangles?
    Par Happy dans le forum OpenGL
    Réponses: 2
    Dernier message: 06/03/2006, 22h03
  3. indicer des JPanels, est ce possible ?
    Par ceres02 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 01/02/2006, 10h15
  4. Utilisation des vecteurs
    Par EmilieG dans le forum MFC
    Réponses: 12
    Dernier message: 19/03/2004, 16h28
  5. Zoom sur des vecteurs ou lignes
    Par mat.M dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 25/11/2002, 10h40

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