Vector
et ArrayList
Le tableau suivant présente quelques méthodes de la classe Vector
Informations sur l'état du vecteur | |
---|---|
isEmpty() | indique si le Vector est vide |
size() | renvoie le nombre d'éléments |
elementAt(int) | obtient un objet à partir de son indice |
Opérations qui modifient l'état du vecteur | |
addElement(Object) | ajoute un objet à la fin du Vector |
insertElementAt(Object, int) | insère l'objet à l'indice indiqué |
removeElementAt(int) | retire l'objet dont l'indice est donné |
removeAllElements() | vide le Vector |
setElementAt(Object, int) | place l'objet à l'indice donné |
Exemple :
Vector vec = new Vector(); vec.add ("premier élément ajouté"); vec.add ("second élément ajouté"); vec.insertElementAt(new Integer(3), 1); // insérer à la position 1 System.out.println (vec); String ch = (String)vec.elementAt(0); // casting nécessaire
Résultats :
[premier élément ajouté, 3, second élément ajouté]
vec
.instanceof
permet de vérifier si l'élément donné
est du type indiquéif (vec.element(i) instanceof String) String str = (String)vec.element(i);
Vector<String> vec = new Vector<String>(); vec.add ("premier élément ajouté"); String ch = vec.elementAt(0); // casting n'est pas nécessaireun type défini de telle façon est appelé un type générique ou un type paramétrisé
La classe ArrayList
est une version améliorée de la classe Vector
.
Elle est optimisé pour des opérations d'ajout/suppression d'éléments en fin de liste.
Comparons les définitions des deux classes :
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, SerializableLa classe
AbstractList
est définie comme suit :
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
Examinons les méthodes disponibles dans les trois classes.
Le fichier blablabla.txt contient plusieurs lignes de texte. Vous devez trier toutes ces lignes dans l'ordre croissant. Utilisez la classe ArrayList.
import java.util.ArrayList; import javax.swing.*; import java.io.*; public class TriArrayList { ... public static void imprimer(ArrayLista){ ... } public static void main(String args[]){ try { JFileChooser dial = new JFileChooser(); int res = dial.showOpenDialog(null); if (res == JFileChooser.APPROVE_OPTION) { File f = dial.getSelectedFile(); InputStream is = new FileInputStream(f); Reader r = new InputStreamReader(is); BufferedReader br = new BufferedReader(r); String ligne = br.readLine(); ... is.close(); } } catch (IOException e) { System.err.println("Problème de lecture du fichier blablabla.txt"); } tri(arr); imprimer(arr); } }