[Java]Arraylist avec indice choisi

Fermé
silentData Messages postés 183 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 18 octobre 2013 - 20 avril 2012 à 13:26
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 22 avril 2012 à 15:59
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 20/04/2012 à 13:54
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 183 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 18 octobre 2013 40
21 avril 2012 à 17:46
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
21 avril 2012 à 17:57
"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 183 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 18 octobre 2013 40
21 avril 2012 à 18:24
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
22 avril 2012 à 15:59
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