IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Set ordonné avec accès direct


Sujet :

Langage Java

  1. #1
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut Set ordonné avec accès direct
    Hello guys,

    Voila dans la pléthore d'implémentations de l'interface Collection j'en cherche une qui répondrait aux critères suivants :

    - Ordonnée : Oui mais pas obligatoire
    - Accès direct : Oui
    - Clé / Valeur : Non
    - Doublon : Non

    Le problème est que j'ai l'impression que ce type d'implémentation n'existe pas... J'ai checké dans le tutoriel jmd à partir des cours et tutoriels Java : http://java.developpez.com/cours/ mais sans succès.

    Est-ce qu'il y aurait une implémentation miracle qui m'aurait échappé?

    Si non quelle est à votre avis le meilleur moyen (le plus efficace au niveau performance) de répondre à mon besoin? Est-ce que le simple code ci-dessous serait la bonne manière de faire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!list.contains(value)) {
        list.add(value);
    }
    Merci quelque-soit votre aide .

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Qu'est-ce que tu appelles un "accès direct" exactement ?
    HashSet ou LinkedHashSet ne te conviennent pas ? Pourquoi ?

    a++

  3. #3
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut
    Salut adi,

    Je veux dire que la classe fournit des méthodes get, add, et indexOf (si possible).

    Les classes Set et leur dérivés ne me conviennent pas justement à cause de ça :/.

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    add() existe dans Set (dans Collection même).

    Pour get() et indexOf() cela signifie que tu veux que les données soient ordonné, et donc une List.


    En effet il n'y a pas de List sans doublons, car ce serait couteux (à chaque ajout il faut vérifier tous les éléments).
    Donc il faut soit utiliser une LinkedHashSet (si la liste doit être créé puis utilisé), soit un type spécifique si l'on doit faire des ajouts constants.




    Quel est le besoin précisément ?


    a++

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Faut chercher en dehors de l'api standard java.

    Les list ne peuvent pas être triées car l'interface List objet un add() à un index précis. pas compatible avec un tri
    Les LinkedSet peuvent supporter le tri mais pas l'accès random.


    En fait, ce que tu cherche c'est une implémentation d'arbre binaire avec doublons et index. Trop spécifique, ça n'est pas en standard. A toi de l'implémenter. Personnes a jamais besoin de ça je dirais

  6. #6
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut
    Oui j'ai bien l'impression, à la limite l'ordonnancement ne serait pas obligatoire mais le non "doublonage" lui si....

    J'ai résolu ça avec un bête "contains(..)" sur ma méthode add, je n'ai pas trouvé de manière plus propre ou plus efficace.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mars 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 21
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    Au fait, n'oublie pas de gérer aussi le addAll() sinon tu risques d'avoir des surprises. Peut-être y-a-t'il d'autres méthodes à vérifier/surcharger (a vu de nez je ne vois pas).

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Alors un truc qui fait random access
    Qui n'est pas nécessairement trié
    Qui garantit l'unicité


    https://commons.apache.org/proper/co...niqueList.html

Discussions similaires

  1. Empêcher l'accès direct à une page avec les sessions
    Par Loupinou dans le forum Langage
    Réponses: 4
    Dernier message: 18/07/2009, 18h25
  2. Cherche hébergement serieux avec accès direct à MySQL
    Par Didier100 dans le forum Hébergement
    Réponses: 10
    Dernier message: 16/05/2007, 08h21
  3. Enlever accès direct aux pages avec struts
    Par Verboz dans le forum Struts 1
    Réponses: 7
    Dernier message: 09/05/2007, 15h29
  4. [WD8] Requêtes paramétrées avec accès odbc direct
    Par devalender dans le forum WinDev
    Réponses: 5
    Dernier message: 20/12/2005, 12h25
  5. Empêcher l'accès direct avec squid
    Par Amélie Ladoque dans le forum Réseau
    Réponses: 6
    Dernier message: 11/04/2005, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo