मैं शुद्ध http://www.coderanch.com/t/201836/Performance/java/Hashtable-vs-Hashmap पर एक एल्गोरिथ्म भर में आया और यहपूर्वनिर्धारित क्षमता के साथ HashMaps तेजी
public class MapTest{
static int sizeOfTrial = 100000;
static String[] keys = new String[sizeOfTrial];
static String[] vals = new String[sizeOfTrial];
public static void main(String[] args) {
//init sizeOfTrial key/value pairs
for (int i=0; i < sizeOfTrial; i++){
String s1 = "key"+ i;
String s2 = "val"+ i;
keys[i] = s1;
vals[i] = s2;
}
test(new TreeMap(), "TreeMap");
test(new Hashtable(), "Hashtable");
test(new HashMap(), "HashMap");
test(new Hashtable(200000), "Hashtable presized");
test(new HashMap(200000), "HashMap presized");
}
public static void test(Map tm, String name){
long t1 = System.currentTimeMillis();
for (int i=0; i < sizeOfTrial; i++){
tm.put(keys[i],vals[i]);
}
for (int i=0; i < sizeOfTrial; i++){
tm.get(keys[i]);
}
long t2 = System.currentTimeMillis();
System.out.println("total time for " + name + ": " + (t2-t1));
}
}
परीक्षण करने का फैसला कर रहे हैं और मैं निम्नलिखित परिणाम
total time for TreeMap: 1744
total time for Hashtable: 446
total time for HashMap: 234
total time for Hashtable presized: 209
total time for HashMap presized: 196
मिला इस JVM निर्भर है और मनमाने ढंग से है या यह वास्तव में तेजी से पहुंच और भंडारण का समय प्रदान करता है?
यह केवल सत्य है यदि पूर्वनिर्धारित आकार पार नहीं किया गया है। यदि यह है तो पूर्वनिर्धारित एक प्रतिलिपि भी करेगा। – twain249
@ twain249: सच है। "अक्सर के रूप में" शब्दों के साथ स्पष्ट। – mellamokb
न केवल पुनर्प्राप्ति के बारे में बल्कि पुरानी कुंजी के खिलाफ नए मूल्यों को संग्रहीत करने के बारे में .. क्या यह उस परिस्थिति में तेज़ी से होगा ?? – Nav