Vinetos

HashMaps

Jan 8th, 2016
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.44 KB | None | 0 0
  1. import org.bukkit.entity.Player;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5.  
  6. /**
  7.  * Created by Vinetos on 08/01/2016.
  8.  */
  9. public class HashMaps {
  10.  
  11.     /**
  12.      *
  13.      * Une Hashmap (également utiliser sous le nom de "Map" permet de stocker deux valeurs associées.
  14.      * La première étant la valeur clef ("Key") et la deuxième la valeur ("Value").
  15.      * Il ne peut y avoir qu'une valeur clef par HashMap. Par exemple si tu insères "Test" avec "Concluant".
  16.      * Si tu re-ajoutes la valeur "Test", la premère valeur assigné sera supprimée par la dernière entrée.
  17.      * En revanche, tu peux mettre autant de valeusr "Value" identiques, cela fonctionnera sans problème
  18.      *
  19.      **/
  20.  
  21.     private HashMap<Player, String> hashMap = new HashMap<Player, String>();
  22.     //Ici, j'ai comme Key un Player et comme valeur un String (Un joueur et un message associé)
  23.  
  24.     public void addPlayer(Player p, String message){
  25.         /*Ajout*/
  26.         if(hashMap.containsKey(p))return;//Si l'HashMap contient déjà le joueur
  27.  
  28.         hashMap.put(p, message);//On ajoute le Player (Key) et le String (Value)
  29.  
  30.  
  31.         /*L'avantage c'est qu'on peut récupérer le message asscocié au joueur*/
  32.  
  33.         String s = hashMap.get(p);//On récupère à partir de la Key, la value associée (Malheuresement, il n'y a pas l'inverse)
  34.         p.sendMessage(s);
  35.  
  36.         hashMap.put(p, "Un autre message");//On remplace la valeur existante par notre nouveau message
  37.  
  38.         String newMsg = hashMap.get(p);
  39.         p.sendMessage(s);//On obtient "Un autre message".
  40.  
  41.  
  42.         /*Convertion*/
  43.         ArrayList<Player> players = new ArrayList<Player>();
  44.         players.addAll(hashMap.keySet());//On ajoute toutes les valeurs clefs dans l'ArrayList
  45.  
  46.         ArrayList<String> msgs = new ArrayList<String>();
  47.         msgs.addAll(hashMap.values());//On ajoute toutes les valeurs dans l'ArrayList
  48.  
  49.         /*.keySet() -> Toutes les Key
  50.          *.values() -> Toutes les valeurs
  51.          */
  52.  
  53.         /*Suppression*/
  54.         hashMap.remove(p);//On enlève la Key de l'HashMap (donc sa valeur aussi) On ne peux pas supprimer à partir d'une valeur
  55.         hashMap.clear();//On supprime tout
  56.  
  57.         /*Autre*/
  58.         //Il y a aussi des fonctions "de base" comme pour les arrayList
  59.         boolean empty = hashMap.isEmpty();//Si l'HashMap est vide -> true
  60.         int size = hashMap.size();//Le nombre de valeurs Clefs dans l'HashMap
  61.  
  62.     }
  63.  
  64.  
  65. }
Advertisement
Add Comment
Please, Sign In to add comment