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

Collection et Stream Java Discussion :

[Collections] Récupérer dernière entrée d'une Map


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut [Collections] Récupérer dernière entrée d'une Map
    Bonjour,

    Je cherche à stocker des couples Clé/Valeur (<Object,String>) dans une map.
    J'ai choisi la HashMap. Maintenant, je voudrais récupérer le dernier enregistrement rentré dans la map, je n'ai pas de clé donc je ne peut pas utiliser la méthode get. Je ne vois aucune méthode permettant de le faire.

    Pouvez vous m'aider s'il vous plait ?

    Merci,
    Ouar

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Les Map ne sont pas forcément ordonnée, et les HashMap ne le sont pas du tout ! Donc il n'y a aucune notion de première ou dernière entrée...


    a++

  3. #3
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    t'as plus qu'a travailler avec une LinkedHashMap qui te permet de garder l ordre d'insertion des éléments.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut
    Oui, merci, linkedHashMap conserverait l'ordre d'insertion.
    Mais quelle méthode utiliser pour extraire la dernière valeur insérée ?
    Je ne peux pas faire directement de get puisqu'il me faudrait la clé.

    Ou alors, si la solution n'est pas immédiate, peut etre qqchose en jouant avec les Iterator ??

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut
    Bon , voici donc une solution à base d'Iterator, je fais un println tout bête juste pour la démo. S'il y a plus direct je suis preneur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            Map<Integer, String> map = new LinkedHashMap<Integer, String>();
            map.put(1, "Test 1");
            map.put(2, "Test 2");
            map.put(3, "Test 3");
     
            Iterator it = map.keySet().iterator();
            while (it.hasNext()) {
                System.out.println("Dernier : " + map.get(it.next()));
            }

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Où faire sa propre classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    class MonMap<K, V> extends HashMap<K, V> {
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	private K lastKey = null;
     
    	public K getLastKey() {
    		return lastKey;
    	}
     
    	public V put(K key, V value) {
    		V ret = super.put(key, value);
    		lastKey = key;
    		return ret;
    	}
    }
     
     
    class Main {
    	static public void test() throws Exception {
    		throw new Exception();
    	}
     
    	public static void main(String[] args) throws Exception {
    		MonMap<Integer, String> map = new MonMap<Integer, String>();
    		map.put(1, "dernier");
    		map.put(0, "Salut");
     
     
    		System.err.println(map.get(map.getLastKey()));
     
    	}
    }
    Le problème étant que tu ne pourras pas travailler avec une "Map" toute seule

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Annuler dernière entrée d'une table
    Par robyseb dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/10/2011, 14h54
  2. Réponses: 2
    Dernier message: 03/01/2008, 12h42
  3. Récupérer la clé d'une Map
    Par bobic dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/04/2007, 10h34
  4. Réponses: 1
    Dernier message: 05/12/2006, 17h22
  5. Dernière entrée dans une base de données
    Par ploxien dans le forum JDBC
    Réponses: 1
    Dernier message: 10/05/2006, 14h30

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