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 :

Problème ArrayList Java


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Points : 58
    Points
    58
    Par défaut Problème ArrayList Java
    Bonjour,
    je souhaite faire un fonction modifier un peu élaborer (pour moi).
    Je travaille sur un objet spectacle: id, nom, date, nbplaces et tarif.
    L'utilisateur entre le nom du spectacle à modifier et récupère tt les occurence grace a la fonction indexOf(String).
    Mon problème c'est que je n'arrive pas a modifier mes objet en question j'obitien une execption que je n'ai jamais rencontrer du genre OutOfBoundExcpetion.
    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
     
    //Collection contenant les spectacles trouvés a modifier
    ArrayList<Spectacle> spectacleTrouve = new ArrayList<Spectacle>();
    //enregistre les indexs de ASpectacle des Spectacles à modifier
    int lesIndex[];
    int nbSpectaclesTrouve = 0;
    boolean trouve = false;
    System.out.print("Entrez nom du spectacle à modifier:");
    nom = Cons.saisirChaine();
    for( Iterator<Spectacle> i = ASpectacle.iterator(); i.hasNext(); )
    {
    	spectacle = i.next();
    	//Vérifie la présence de la sous-chaine nom(chaine rechercher par l'utilisateur)
    	//dans le nom du spectacle courant
    	if(spectacle.getNom().indexOf(nom) != -1)
    	{ 
    		spectacleTrouve.add(spectacle);
    		nbSpectaclesTrouve++;
    		trouve = true;
    	}
    }
    nbSpectaclesTrouve--;
    if(trouve)
    {
    	//on créer le tableau avec le nombre d'elements trouvés
    	lesIndex = new int[nbSpectaclesTrouve];
    	for(int j = 0; j < lesIndex.length; j++)
    	{
    		lesIndex[j] = ASpectacle.indexOf(spectacleTrouve.get(j));
    	}
    	System.out.println((spectacleTrouve.size())+" spectacle(s) trouvé(s).");
    	int j = 0;
    	for( Iterator<Spectacle> i = spectacleTrouve.iterator(); i.hasNext(); )
    	{
    		spectacle = i.next();
    		System.out.println("ID: "+spectacle.getId());
    		System.out.println("Nom: "+spectacle.getNom());
    		System.out.println("Date: "+dateToString( spectacle.getDate() ) );
    		System.out.println("Nombre de places: "+spectacle.getNbPlaces());
    		System.out.println("Tarif: "+spectacle.getTarif());
    		System.out.print("Modifier? (o/n)");
    		if(Cons.saisirChaine().equals("o"))
    		{
     
    			System.out.println("Nom: "+spectacle.getNom());
    			System.out.print("Entrez nouveau nom:");
    			nom = Cons.saisirChaine();
    			if(!nom.equals("")) spectacle.setNom(nom);
    			System.out.println("Date: "+dateToString( spectacle.getDate() ) );
    			System.out.print("Entrez nouvelle date:");
    			date = stringToDate(Cons.saisirChaine());
    			spectacle.setDate(date);
    			System.out.println("Nombre de places: "+spectacle.getNbPlaces());
    			System.out.print("Entrez nouveau nb place:");
    			nbPlaces = Cons.saisirEntier();
    			if(nbPlaces != 0) spectacle.setNbPlaces(nbPlaces);
    			System.out.println("Tarif: "+spectacle.getTarif());
    			System.out.print("Entrez nouveau tarif:");
    			tarif = Cons.saisirReel();
    			if(tarif != 0) spectacle.setTarif(tarif);
    			ASpectacle.set(lesIndex[j], spectacle);
    			j++;
    		}
     
    	}
    }

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Points : 58
    Points
    58
    Par défaut
    J' obtient ceci comme exception lorsque je veut modifier tout mes objets trouvés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    	at GereSpectacle.modifierSpectacle(GereSpectacle.java:316)
    	at GereSpectacle.main(GereSpectacle.java:332)

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Bonjour,

    Cela signifie que tu essaies d'accéder à un index du tableau hors de ses limites.
    Je dirais que cela est dû à cette intrustrion:
    Petite remarque au passage, cet entier est inutile car il représente la taille de ta liste. Tu peux donc le récupérer sans risque d'erreur comme cela:

Discussions similaires

  1. Problème ArrayList java
    Par aureliend8800 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 22/05/2013, 23h09
  2. Problème mémoire Java heap space avec tableau et ArrayList
    Par phoenix420 dans le forum Collection et Stream
    Réponses: 45
    Dernier message: 22/06/2010, 10h01
  3. Problème ArrayList JAVA
    Par Tsquare dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 29/12/2008, 17h52
  4. Problème Applet Java et Win XP SP2
    Par octal dans le forum Applets
    Réponses: 4
    Dernier message: 04/02/2006, 09h57
  5. divers problème avec Java et jdbc
    Par chti_juanito dans le forum JDBC
    Réponses: 28
    Dernier message: 31/10/2005, 16h54

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