2014-02-12 82 views
0

如何初始化下面的哈希表?如何初始化一个哈希表

public static Hashtable<String, Hashtable<String, String>> tab = new Hashtable<String, Hashtable<String, String>>();  
static { 
    tab.put("Key1", ????); 
    tab.put("Key2", ????); 
    tab.put("Key3", ????); 
} 
+0

不要使用'Hashtable',使用'Map'接口,然后一个'HashMap' - 可能。除非你需要'同步' - 即使那样'Hashtable'也是无用的。 –

+0

@BoristheSpider为什么呢? – yonan2236

+1

因为'Hashtable'是一个遗留集合,所有的方法调用都是'synchronized',这使得它**变慢**。此外,由于同步是内在的,它几乎是完全无用的。直接来自[JavaDoc](http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html)_不像新的集合实现,Hashtable是同步的。如果不需要线程安全的实现,建议使用'HashMap'来代替'Hashtable'_。 –

回答

1
public static Hashtable<String, Hashtable<String, String>> tab = new Hashtable<String, Hashtable<String, String>>();  
static { 
    tab.put("Key1", new HashTable<String,String>()); 
    ... 
} 
0
static { 
    Hashtable<String, String> ob = new Hashtable<String, String>; 
    ob.put("a","a"); 
    .. Put key/value... 
    tab.put("Key1",ob); 
} 
1

您可以使用,例如,空Hashtable S:

public static Hashtable<String, Hashtable<String, String>> tab = 
    new Hashtable<String, Hashtable<String, String>>();  
static { 
    tab.put("Key1", new Hashtable<String, String>()); 
    tab.put("Key2", new Hashtable<String, String>()); 
    tab.put("Key3", new Hashtable<String, String>()); 
} 
相关问题