Java: vector

domxaline -  
KX Messages postés 19031 Statut Modérateur -
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

2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. domxaline
     
    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
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      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