[Java]Arraylist avec indice choisi

silentData Messages postés 201 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

J'aurais besoin d'une structure de liste en java qui me permet de choisir l'indice utilisé pour mes éléments, sans pour autant générer les indices manquants.

Sauf erreur, ArrayList permet de le faire, mais si j'ajoute un objet à l'indice 10, il me créera des objets aux indices inférieurs. Il me semblait que LinkedList le permettait, mais je viens de voir que non...

Merci :)
A voir également:

3 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Pour ce que tu veux faire le mieux serait d'utiliser une Map.
Par exemple avec une HashMap<Integer,V>.

Remarque : "ArrayList (...) si j'ajoute un objet à l'indice 10, il me créera des objets aux indices inférieurs". Non, aucune des listes standards ne permet pas de faire ça. La méthode add(int,E) permet d'insérer un élément entre deux déjà existants (en décalant tout), mais renvoie un IndexOutOfBoundsException si tu donnes un indice supérieur à la taille de la liste.La confiance n'exclut pas le contrôle
0
silentData Messages postés 201 Statut Membre 40
 
Hello...

Merci pour la réponse. En effet, j'avais tout d'abord pensé utiliser une Hashmap, cependant cette structure de donnée est spécialement lourde et mal conçue. Hors je sais que dans le cas d'un petit projet cela importe peu, cependant étant donné que mon projet et un laboratoire dans le cadre scolaire, mon prof n'aimera pas :P

J'avais me semble-t-il entendu parlé d'une forme de liste en Java qui permettait d'indicer comme bon semblait au développeur... Peut être me suis-je fourvoyé... Je vais revoir ma modélisation dans ce cas...

Merci pour ta réponse !
0
KX Messages postés 19031 Statut Modérateur 3 020
 
"une HashMap (...) est spécialement lourde et mal conçue" !?
En voici une curieuse manière de voir les choses ! Une liste dans laquelle on ajoute des données ponctuellement et pour laquelle on laisse des trous là où il n'y a pas de données, ça c'est lourd et mal conçu ! Mais pour une HashMap je ne comprends pas, peut-être faudrait-il détailler tes arguments...

"une forme de liste en Java qui permettait d'indicer comme bon semblait au développeur"
Il me semble que cela existe en JavaScript, mais c'est parce que leurs "tableaux" sont en réalité... des tables de hachages !!! À croire que les concepteurs du JavaScript ont eux aussi fait le choix d'une technologie "lourde et mal conçue"...

Après si c'est un projet scolaire, et que ton prof n'accepte pas cette solution, c'est une autre histoire ;-)
0
silentData Messages postés 201 Statut Membre 40
 
La lourdeur des tables de hashage sont justement les dires de mon professeur. Il n'a pas argumenté, mais je ne vais pas contredire un docteur en informatique ;)

Quoiqu'il en soit, merci pour ton aide ;)
0
KX Messages postés 19031 Statut Modérateur 3 020
 
La classe HashMap n'est qu'une des implémentations de l'interface Map, mais il y en a d'autres, et en particulier la classe TreeMap qui est un arbre bicolore.
0