2017-09-08 1 views
0

Je veux créer Java Hashtable à partir de HashMap.Java- Comment créer Java Hashtable à partir de HashMap

HashMap hMap = new HashMap();  
//populate HashMap 
hMap.put("1","One"); 
hMap.put("2","Two"); 
hMap.put("3","Three"); 

//create new Hashtable 
Hashtable ht = new Hashtable(); 

//populate Hashtable 
ht.put("1","This value would be REPLACED !!"); 
ht.put("4","Four"); 

Après quoi, quelle sera la procédure la plus simple?

+1

'Hashtable ht = new Hashtable (HMAP),' 'ou ht.putAll (HMAP);'. Utilisez la [documentation API] (http://docs.oracle.com/javase/8/docs/api/java/util/Hashtable.html). En outre, vous devez utiliser des génériques et ne pas utiliser [types bruts] (https://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why-shouldnt-we-use-it). – Jesper

+0

Oui, mais je suis tenu de suivre les exigences. @AndyTurner remercie un ami –

+0

OK @Jesper l'a eu grâce à un ami –

Répondre

1

Utilisez le constructeur Hashtable qui accepte un Map:

public Hashtable(Map<? extends K, ? extends V> t) 

Et vous devez privilégier les types génériques sur les types bruts et programme par l'interface que vous déclarez vos Map instances:

Map<String,String> hMap = new HashMap<>();  
//populate HashMap 
hMap.put("1","One"); 
hMap.put("2","Two"); 
hMap.put("3","Three"); 

//create new Hashtable 
Map<String,String> ht = new Hashtable<>(hMap); 
+0

OK. merci Puis-je utiliser Enumeration? @davidxxx –

+0

@Minati Das: 'Enumeration' est aussi obsolète que' Hashtable', mais si vous en avez vraiment besoin, utilisez le pont ['Collections.enumeration'] (https://docs.oracle.com/javase/8/ docs/api/java/util/Collections.html # énumération-java.util.Collection-), par exemple au lieu de 'hashtable.keys()', vous pouvez utiliser 'Collections .enumeration (map.keySet())' et au lieu de 'hashtable.elements()', vous pouvez utiliser 'Collections.enumeration (map.values ​​()) '. Mais normalement, vous utilisez un 'Iterator' ou juste une boucle for-each,' for (String key: map.keySet()) ... 'ou' for (Valeur chaîne: map.values ​​()) ... ' – Holger

0

Whoomp! ! Je l'ai fait avec succès .. voilà :)

import java.util.Enumeration; 
import java.util.Hashtable; 
import java.util.HashMap; 

public class CreateHashtableFromHashMap { 

    public static void main(String[] args) { 

    //create HashMap 
    HashMap hMap = new HashMap(); 

    //populate HashMap 
    hMap.put("1","One"); 
    hMap.put("2","Two"); 
    hMap.put("3","Three"); 

    //create new Hashtable 
    Hashtable ht = new Hashtable(); 

    //populate Hashtable 
    ht.put("1","This value would be REPLACED !!"); 
    ht.put("4","Four"); 

    //print values of Hashtable before copy from HashMap 
    System.out.println("hastable contents displaying before copy"); 
    Enumeration e = ht.elements(); 
    while(e.hasMoreElements()) 
    System.out.println(e.nextElement()); 

    ht.putAll(hMap); 

    //Display contents of Hashtable 
    System.out.println("hashtable contents displaying after copy"); 
    e = ht.elements(); 
    while(e.hasMoreElements()) 
    System.out.println(e.nextElement()); 

    } 
}