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

Collection et Stream Java Discussion :

Tableau plus générique


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut Tableau plus 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
    public class Matrix {
    
    	private int y;
    	private int x;
    	private int[] values;
    	
    	public Matrix(int cy,int cx, int val){
    		y=cy;
    		x=cx;
    		values = new int[cy*cx];
    		
    		for(int i=0; i<values.length; i++){
    			values[i]=val;
    		}
    	}
    -------------------------

    Comment faire pour avoir un objet Matrix qui peut emmagasiner dans son tableau autres choses que des int ?

    exemple : public Matrix (int cy, int cx, String val)...

    Je suis nouveau alors si vous voyez d<autres erreurs dans mon code ne vous gênez pas et faites moi en part.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur java, .Net
    Inscrit en
    Janvier 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur java, .Net

    Informations forums :
    Inscription : Janvier 2011
    Messages : 55
    Par défaut
    un tableau d'objet Object[] tableau?

  3. #3
    Membre Expert
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Par défaut
    Ou tu peux utiliser les Generics. En sachant qu'il faudra passer le tableau depuis les constructeurs. L'avantage par rapport au tableau d'Object, est que tu peux conserver le type que tu veux. Mais le tableau d'Object te permet de mettre plusieurs types différents, puisque toutes les classes héritent d'Object.

    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 Matrix<T> {
     
    	private int y;
    	private int x;
    	private T[] values;
     
    	public Matrix(int cy,int cx, T[] val){
    		y=cy;
    		x=cx;
    		values = val;
    	}
    }

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par olivier.pitton Voir le message
    Ou tu peux utiliser les Generics. En sachant qu'il faudra passer le tableau depuis les constructeurs.
    Les tableaux et les génériques vont mal ensemble. Remplacer tableau par List.

    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 Matrix<T> {
     
    	private int y;
    	private int x;
    	private List<T> values;
     
    	public Matrix(int cy,int cx, List<T> val){
    		y=cy;
    		x=cx;
    		values = val;
    	}
    }
    Par ailleurs, la solution Object[] ou la solution T[] ou List<T>, ont toutes le même défaut : elles forcent l'emploi de type objet au lieu de type de base.
    Quand il n'y a que quelques milliers de données à stocker et traiter ça ne fait pas de différence.
    Mais quand il y en a beaucoup, les objets prennent plus de mémoire et ont un traitement plus long que les int, long, byte, double etc.
    Java ne propose pas de solution pour ça. À la rigueur il est possible d'en programmer soi-même.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut
    Le problème est que j'aimerais créer une fonction getValue(y,x) qui me retourne la valeur en int si un int se trouve à la coordonnée (y,x) ou un String si c'est un String...

    J'ai commencé en javascript et j'avais créé cette fonction qui prenait tout les types de paramètres. Mais je ne veux pas ralentir les performances de mon objet, j'aurais aimé qu'il soit flexible pour une utilisation multiple mais s'il n'est pas adapté à :

    Générer plusieurs tableaux (de int par exemple) pixel par pixel dans une fenêtre java(pour faire une animation), avec JPanel ou quelque chose qui me le permettrait. Car j'aimerais programmer ma Matrice pour qu'elle puisse afficher des vecteurs à l'écran par exemple.

    Est ce de la folie comme projet ou c'est réalisable avec une base en programmation ? Je suis capable de le faire en javascript en affichant mon tableau avec des 0 et des 1 comme 'pixels' dans une page html pour afficher une droite ou un vecteur par exemple.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par bobonome80 Voir le message
    Le problème est que j'aimerais créer une fonction getValue(y,x) qui me retourne la valeur en int si un int se trouve à la coordonnée (y,x) ou un String si c'est un String...
    La solution Object[] ne le peut pas, mais les solutions T[] et List<T> font ça sans problème, c'est un peu pour ça qu'elles existent.

    Citation Envoyé par bobonome80 Voir le message
    J'ai commencé en javascript et j'avais créé cette fonction qui prenait tout les types de paramètres. Mais je ne veux pas ralentir les performances de mon objet, j'aurais aimé qu'il soit flexible pour une utilisation multiple mais s'il n'est pas adapté à :

    Générer plusieurs tableaux (de int par exemple) pixel par pixel dans une fenêtre java(pour faire une animation), avec JPanel ou quelque chose qui me le permettrait. Car j'aimerais programmer ma Matrice pour qu'elle puisse afficher des vecteurs à l'écran par exemple.

    Est ce de la folie comme projet ou c'est réalisable avec une base en programmation ? Je suis capable de le faire en javascript en affichant mon tableau avec des 0 et des 1 comme 'pixels' dans une page html pour afficher une droite ou un vecteur par exemple.
    J'ai pas tout compris mais quand on fait de l'affichage d'image on a pas besoin d'une telle flexibilité. Jamais de String[], que des int[].
    Ou dans certains cas plus rares que des long[] ou que des float[].
    Quoi qu'il en soit, pas besoin d'une telle flexibilité.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [JavaScript] [SRC] Construire un grand tableau plus rapidement
    Par SpaceFrog dans le forum Contribuez
    Réponses: 9
    Dernier message: 20/02/2010, 22h01
  2. [DOM] Modification tableau plus ajout colonne.
    Par Shandler dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 03/12/2007, 12h22
  3. Copie d'un tableau dans un tableau plus grand
    Par oodini dans le forum Débuter
    Réponses: 3
    Dernier message: 24/09/2007, 16h09
  4. Réponses: 13
    Dernier message: 07/01/2007, 19h43
  5. un tableau plus large que la fenêtre.
    Par maniaco_jazz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/12/2005, 23h25

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