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 :

Initialiser un tableau


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    php
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : php
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Initialiser un tableau
    Bonjour,

    Je suis débutante en Java, j'initialise mon tableau de cette façon : mais je ne pense pas que c'est le bon syntaxe parce que j'ai une erreur de la taille :
    java.lang.ArrayIndexOutOfBoundsException
    voici le code de ma classe Java:

    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
    public static void main(String[] args){
     
    		Scanner sc = new Scanner(System.in);
     
    		int[] tab ={};
     
    		int i,nb;
     
     
    		System.out.println("Entrer le nombre des valeurs stockées dans le tableau: ");
     
    		nb = sc.nextInt();
     
    		System.out.println("Remplir le tableau: ");
     
    		for(i=0; i<nb; i++){
     
    			tab[i] = sc.nextInt();
     
    		}
    	}
    Merci d'avance

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    En effet ce n'est pas la bonne façon de faire

    En Java, il faut savoir que les tableaux on une taille fixe, et qu'il est impossible de la changer.

    Donc quand tu écris int[] tab ={};, en fait tu déclare un tableau de longueur 0.

    Du coup tu imagines facilement que dès que tu vas essayer d'accéder à une case, ça risque de pas très bien marcher. Cela se traduit par l'erreur ArrayIndexOutOfBoundsException qui est renvoyée lorsque tu essais d'accéder à une case d'un tableau qui n'existe pas.

    Une des bonne façon de déclarer un tableau est la suivante (il en existe plusieurs).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int[] tab = new int[10];
    Ici tu initialises un tableau qui contient 10 cases, ni plus, ni moins.

    Ensuite il ne te reste plus qu'a les remplir avec les valeurs que tu veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for( int i = 0; i < nb; i++ )
      tab[i] = i; // remplie le tableau avec les valeurs de 0 à nb-1
    L'idée serait donc d'utiliser la variable "nb" pour initialiser la taille de ton tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    System.out.println("Entrer le nombre des valeurs stockées dans le tableau: ");
    nb = sc.nextInt();
     
    int[] tab = new int[nb];
    Et de là tu peux écrire for( int i = 0; i < tab.lenght; i++ ) et faire ce que tu veux dans cette boucle.

    J'espère que c'est plus clair pour toi.

    Cdt.

    Ps:
    Un petit aparté quand même pour préciser que même les cases de ton tableau existent, ce n'est pas pour ça qu'elles contiennent des valeurs.

    Si tu écris String tab = new String[10], le tableau contient bien 10 cases, mais les valeurs pour ces cases seront nulles tant que tu ne les auras pas remplis ! Attention donc.

    Un tableau de type primitif (int,boolean,char,etc..) lui sera remplie avec des valeurs par défaut (0 pour des int, false pour des boolean...)

  3. #3
    Futur Membre du Club
    Femme Profil pro
    php
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : php
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup,

    ça fonctionne très bien et j'ai bien compris le principe

    A bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 35
    Dernier message: 14/02/2006, 18h57
  2. Réponses: 7
    Dernier message: 31/01/2006, 22h34
  3. initialiser un tableau 2D dans le main
    Par miminou dans le forum C++
    Réponses: 5
    Dernier message: 20/12/2005, 10h35
  4. [LG] Jeu mémory : initialisation de tableau
    Par DarkLords dans le forum Langage
    Réponses: 1
    Dernier message: 19/10/2005, 15h13
  5. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30

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