1 Généralités sur les Collections
2 java.util.LinkedList
3 java.util.HashMap
4 Autres collections
5 Dépassez l'impossibilité d'objets de type primitif
Certaines classes particulières procurent des collections d'objets et offrent un certain nombre de fonctionnalités qui permettent
de gérer ces collections d'objets. Ces classes font partie du package java.util;. Les classes pour lesquelles on voudra utiliser
les collections d'objets devront donc intégrer en première ligne, avec même la définition de classe :
import java.util; public class ClassCourante{ ...
void ajouterObjetTableau(Action[] t,Action a) { Action[] t2=new Action[t.length+1]; for(int i=0;i<t.length;i++) t2[i]=t[i]; t2[t2.length-1]=a; t=t2; }Ce faisant, il faut un grand nombre d'opérations pour ajouter un élement à un tableau. Des structures de données de taille non fixe ont été introduites. En C ou en C++, on peut construire des structures de données très diverses à partir des pointeurs (liste chainées, pile, files etc), ceci est aussi possible en java, mais pour java, on utilise plus spontanément l'ensemble des collections d'objets pré-définies.
Une LinkedList est une collection d'objets. Une LinkedList enregistre une série d'adresses d'ojets, références. On précise le type des objets référencés lors de la création. Les éléments sont indiciés de 0 et n-1 avec n le nombre des élements. Soit la création d'une LinkedList d'objets de type Facture :
LinkedListCette déclaration est un peu particulière par rapport à ce qui précède dans le cours. Dans les versions antérieures à la version 1.5 du jdk, on pouvait déclarer :factures=new LinkedList ();
LinkedList factures=new LinkedList();
/*On suppose disposer d'une Linkedlist liste d'objets de type MonType*/ for(int i=0;i<liste.size();i++) { Facture fact=factures.get(i); }
LinkedList> list=new LinkedList >();
Une HashMap est une strcuture de données permettant d'enregistrer des objets en les réferençant / indexant par d'autre objets.
Supposons par exemple que l'on crée
une application qui gère les messages postés sur un forum. On dipose d'une classe Utilisateur et d'une classe Commentaire. On veut créer une
strucuture de données qui enregistre pour un utilisateur donné la liste des messages qu'il poste. On peut utiliser la strcuture HashMap :
HashMapOn enregistre des couples de réferences (clé, valeur). Par exemple des couples (Action,Cours) et à partir de l'objet Action, on recupere l'objet Cours associé. Les méthodes importantes de la classe HashMap :> forum=new HashMap >();
public class VarInteger{ int valeur=0; }Ensuite, il suffit de manipuler une collection de type LinkedList
Integer val=Integer(7); System.out.println(val.intValue()); Double valD=Double(0.5); System.out.println(valD.doubleValue());