[Java]Arraylist avec indice choisi
silentData
Messages postés
201
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
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 :)
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:
- [Java]Arraylist avec indice choisi
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Indice téléphonique - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
3 réponses
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
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
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 !
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 !
"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 ;-)
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 ;-)
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.