Programmation , sa porte sur les TreeMap et les ArrayList

Fermé
Euphoria S' Messages postés 3 Date d'inscription mercredi 30 janvier 2013 Statut Membre Dernière intervention 31 janvier 2013 - 31 janv. 2013 à 19:05
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 31 janv. 2013 à 20:00
Bonjour,

Voilà j'aimerai un exemple qui m'illustre bien comment ajouter un ArrayList dans un TreeMap ( en valeur ) car j'ai essayé ce code : et cela n'a pas marché ! ( je suis debutante )

package ESSAIE;

import java.util.ArrayList;
import java.util.TreeMap;

public class map {

TreeMap<Integer, Integer> bookMap = new TreeMap<Integer, Integer>();
TreeMap<Integer, ArrayList<Integer>> userMap = new TreeMap<Integer, Integer>();



if (bookMap.get(3) == null)
bookMap.put(3,2000);

if (userMap.get(1) == null)
userMap.put(1, new ArrayList<Integer>());
userMap.get(1).add(3);

}}


1 réponse

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 31/01/2013 à 20:13
Tu ne peux pas faire :

TreeMap<Integer, ArrayList<Integer>> userMap =
                 ^^^^^^^^^^^^^^^^^^

new TreeMap<Integer, Integer>();
                     ^^^^^^^

Les types paramétrés doivent correspondre entre la déclaration et le constructeur, éventuellement il peut y avoir une relation d'héritage, mais ici il n'y en a pas. Donc déjà il faudrait bien déclarer la map.

Ensuite, faire des tests get()==null, c'est maladroit, car ça ne distingue pas les cas où il n'y a pas de valeurs, et les cas où il y a une valeur qui vaut null, il faudrait plutôt faire les deux tests, et donc utiliser la méthode containsKey().

TreeMap<Integer, ArrayList<Integer>> userMap = new TreeMap<Integer, ArrayList<Integer>>(); 

ArrayList<Integer> list = null; 

if (userMap.containsKey(1)) 
    list = userMap.get(1); // vaut éventuellement null 

if (list==null) 
    list = new ArrayList<Integer>(); 

list.add(3);
userMap.put(1,list);
La confiance n'exclut pas le contrôle
0