Java: vector

Fermé
domxaline - 21 avril 2012 à 10:29
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 22 avril 2012 à 17:35
Bonjour,
j'ai un souci avec ce prg


import java.util.*;//importing vector class
public class LanguageVector
{
public static void main(String args[])
{
Vector list=new Vector ();
int length=args.length;
for(int i=0;i<length;i++)
{
list.addElement(args[i]);
}
list.insertElementAt("COBOL",2);
int size=list.size();
String listArray[]=new String[size];
list.copyInto(listArray);
System.out.println("list of language");
for(int i=0;i<size;i++)
{
System.out.println(listArray[i]);
}
}

}
en compilaant j'ai un erreur suivant:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 > 0
at java.util.Vector.insertElementAt(Unknown Source)
at LanguageVector.main(LanguageVector.java:12)


la ligne 12 est
list.insertElementAt("COBOL",2);


si je comprend bien, il manque la liste ,je ne sais pas comment
l'ajouter cette liste quelqu'un peut m'aider
merci d'avance
A voir également:

2 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
Modifié par KX le 21/04/2012 à 10:44
Une exception ArrayOutOfBoundsException ce n'est pas une erreur de compilation mais d'exécution. Elle est de plus détaillée : "2 > 0" ce qui signifie que tu insères un élément en position 2 d'un vecteur qui possède 0 élément !
En l'occurrence ça doit venir du fait que args est vide, donc aucun élément n'est ajouté à ton Vector pendant la boucle for, d'où l'exception sur le insertElementAt

Remarque : À moins de travailler sur une application multi-thread, ce qui n'est pas ton cas, il faut privilégier la classe ArrayList à la classe Vector, elle fera tout pareil mais en implémentant l'interface Collection, ce qui te permet d'utiliser les méthodes de Collections dont l'intérêt n'est pas négligeable...
La confiance n'exclut pas le contrôle
0
ok
comment ajouter les éléments dans l'args;
c'est ça ma question,aidez moi svp
j'entrain de apparendre java pour ça je vous demande
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
22 avril 2012 à 17:35
les éléments dans args sont passés au programme au moment du démarrage.

Exemple :

public class Test
{
    public static void main(String...args)
    {
        for (String s : args)
            System.out.println(s);
    }
}

javac Test.java
java Test Tata Tete Titi Toto Tutu
0