Map<bluh> map1 = new HashMap<bluh>(); web
HashMap<bluh> map2 = new HashMap<bluh>(); 編程
1.靈活性 定義爲Map以後更靈活 從此纔有可能在須要的時候替換爲HashMap以外的其它實現如TreeMap等,同時如Joshua Bloch等大師也倡導面向接口編程 code to interfaceside
2.有得必有失,第一種的tradeoff就是沒法調用HashMap特有的方法,也就是存在於Map接口中所定義的方法以外的HashMap本身的方法,固然同時也是HashMap未override的方法this
more to check out this link on StackOverflow:spa
http://stackoverflow.com/questions/1348199/java-hashmap-vs-map-objectscode