package com.haoran.Collection.map;import java.util.Date;import java.util.Map;import java.util.HashMap;import java.util.Hashtable;public class MapA { public static void main(String[] args) { Mapmap = new HashMap (); Date date1= new Date(); for (int i = 0; i < 1000000; i++) { map.put(i, i); } Date date2 = new Date(); System.out.println("HashMap的插入时间:"); System.out.println(date2.getTime()-date1.getTime()); Map map1 = new Hashtable (); Date date3= new Date(); for (int i = 0; i < 1000000; i++) { map1.put(i, i); } Date date4 = new Date(); System.out.println("HashTable的插入时间:"); System.out.println(date4.getTime()-date3.getTime()); //write write(); //read read(); } private static void write() { Map map = new HashMap (); Date date1= new Date(); for (int i = 0; i < 1000000; i++) { map.put(i, i); } Date date2 = new Date(); System.out.println("HashMap的插入时间:"); System.out.println(date2.getTime()-date1.getTime()); Map map1 = new Hashtable (); Date date3= new Date(); for (int i = 0; i < 1000000; i++) { map1.put(i, i); } Date date4 = new Date(); System.out.println("HashTable的插入时间:"); System.out.println(date4.getTime()-date3.getTime()); } private static void read() { Map map = new HashMap (); for (int i = 0; i < 10000000; i++) { map.put(i, i); } Date date1= new Date(); for (Integer key : map.keySet()) { map.get(key); } Date date2 = new Date(); System.out.println("HashMap的读取时间:"); System.out.println(date2.getTime()-date1.getTime()); Map map1 = new Hashtable (); for (int i = 0; i < 10000000; i++) { map1.put(i, i); } Date date3= new Date(); for (Integer key : map1.keySet()) { map1.get(key); } Date date4 = new Date(); System.out.println("HashTable的读取时间:"); System.out.println(date4.getTime()-date3.getTime()); }}
1、Map中,HashMap具有超高的访问速度,如果我们只是在Map 中插入、删除和定位元素,而无关线程安全或者同步问题,HashMap 是最好的选择。
2、如果考虑线程安全或者写入速度的话,可以使用HashTable
3、如果想按怎么存的顺序怎么取,比如队列形式,排排队。 那么使用LinkedHashMap吧,怎么用怎么爽
4、如果需要让Map按照key进行升序或者降序排序,那就用TreeMap吧